热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ftp:connect:没有到主机的路由_Qt之FTP上传/下载文件操作

​一个简单的Ftp客户端文件上传下载操作示例。上传文件QNetworkAccessManagermanager;QUrlurl;*设置通讯协议*url.setScheme(

6c01ad0b7c921ade6b071aae644467b8.png
​一个简单的Ftp客户端文件上传/下载操作示例。

上传文件

QNetworkAccessManager manager;
QUrl url;
/* 设置通讯协议 */
url.setScheme("ftp");
/* 设置用户名 */
url.setUserName("root");
/* 设置密码 */
url.setPassword("123456");
/* 设置主机,也可以是域名 */
url.setHost("127.0.0.1");
/* 设置端口号,一般为21 */
url.setPort(21);
/* 设置路径 */
url.setPath("/tmp/hello.png"); /* 装载本地文件 */
QFile file("/Desktop/hello.png");
file.open(QIODevice::ReadOnly);
/* 读取本地文件数据 */
QByteArray data = file.readAll();
file.close();QNetworkRequest request(url);
/* 上传数据,上传成功后会在远端创建/tmp/hello.png文件 */
QNetworkReply* reply = manager.put(request, data); QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
/* 进入等待,但事件循环依然进行 */
eventLoop.exec(); if (reply->error() !&#61; QNetworkReply::NoError) {qDebug() <<"Error: " <errorString();
}

下载文件

QNetworkAccessManager manager;
QUrl url;
/* 设置通讯协议 */
url.setScheme("ftp");
/* 设置用户名 */
url.setUserName("root");
/* 设置密码 */
url.setPassword("123456");
/* 设置主机&#xff0c;也可以是域名 */
url.setHost("127.0.0.1");
/* 设置端口号&#xff0c;一般为21 */
url.setPort(21);
/* 设置路径 */
url.setPath("/tmp/test.txt"); QNetworkRequest request(url);
/* 执行Get请求 */
QNetworkReply* reply &#61; manager.get(request); QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
/* 进入等待&#xff0c;但事件循环依然进行 */
eventLoop.exec(); if (reply->error() &#61;&#61; QNetworkReply::NoError) {/* 创建本地文件 */QFile file("test.txt"); file.open(QIODevice::WriteOnly);/* 写入文件 */file.write(reply->readAll()); file.close();
}
else {qDebug() <<"Error: " <errorString();
}

总结

  • 上传文件&#xff1a;配置url->加载数据->put操作
  • 下载文件&#xff1a;配置url->get操作->获取数据保存到文件
  • 如服务端没有身份验证&#xff0c;客户端可以省略用户名和密码操作。

关注Qt君公众号获取更多知识。



推荐阅读
author-avatar
失望与痛心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有