首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QNetworkAccessManager写文件

用QNetworkAccessManager写文件
EN

Stack Overflow用户
提问于 2017-05-21 00:51:25
回答 1查看 914关注 0票数 0

我在网上到处搜索,没有找到多少。以下是我的当前代码:

代码语言:javascript
复制
QNetworkAccessManager* qnam = new QNetworkAccessManager(this);
QUrl url = QUrl("ftp://example.com/file.txt");
url.setHost(QString("ftp://example.com"));
url.setUserName(QString("user"));
url.setPassword(QString("pass"));
url.setPort(21);
QNetworkRequest req(url);
file.close();

从我现在的情况来看,我如何写到"file.txt“呢?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-05-21 04:02:53

据我所知(可能还有其他方法)

  • 您必须将文件从FTP下载到本地文件或流中。
  • 然后更新本地文件或流。
  • 将更新的文件或流上载回FTP

给出了一个使用本地文件的示例。如果你想的话,试着用你的自我去寻找流淌。代码是粗伪码。在生产中使用它时要小心.

首先,为网络管理器的finished信号创建一个槽,以便完全读取该文件。

代码语言:javascript
复制
connect(qnam,SIGNAL(finished(QNetworkReply*)),
        this, SLOT(replyFinished(QNetworkReply*)));

获取网络回复,如下所示。

代码语言:javascript
复制
QNetworkReply *nReply = qnam->get(req);

创建一个槽函数来将完整的文件读取到本地。

代码语言:javascript
复制
void YourClass::replyFinished(QNetworkReply *data) {
    QFile file("YourFileName");
    if (!file.open(QIODevice::WriteOnly))
        return;
    file.write(data->readAll());
    file.close();
}

以编程方式修改本地文件。

现在将文件上传回FTP,如下所述.

代码语言:javascript
复制
QNetworkRequest upload(url); 
qnam->put(upload, "YourFileName");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44092177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档