一个简单的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() != QNetworkReply::NoError) {qDebug() << "Error: " << reply->errorString();
}

下载文件

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/test.txt"); QNetworkRequest request(url);
/* 执行Get请求 */
QNetworkReply* reply = manager.get(request); QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
/* 进入等待,但事件循环依然进行 */
eventLoop.exec(); if (reply->error() == QNetworkReply::NoError) {/* 创建本地文件 */QFile file("test.txt"); file.open(QIODevice::WriteOnly);/* 写入文件 */file.write(reply->readAll()); file.close();
}
else {qDebug() << "Error: " << reply->errorString();
}

总结

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

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

Qt之FTP上传/下载文件操作相关推荐

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

    ​一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&q ...

  2. python上传本地文件到ftp_python实现的简单FTP上传下载文件实例

    本文实例讲述了python实现的简单FTP上传下载文件的方法.分享给大家供大家参考.具体如下: python本身自带一个FTP模块,可以实现上传下载的函数功能. #!/usr/bin/env pyth ...

  3. android ftp同步程序,ftp同步 安卓,安卓手机ftp上传下载文件功能同步视频照片

    手机拍照越来方便,手机里的照片也越积越多,手机运行缓慢,本文利用安卓的每步FTP服务APP来自动实现手机视频照片的同步,释放手机被占用的存储空间.在机顶盒上运行每步FTP服务,机顶盒USB口连接U盘做 ...

  4. python get 下载 目录_python实现支持目录FTP上传下载文件的方法

    本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. #!/usr/bin/en ...

  5. bat定时进行ftp上传下载文件

    bat进行ftp上传下载文件 参考文章: https://blog.csdn.net/yongzai666/article/details/86488761 背景: 由于公司某个系统原本硬盘损坏 , ...

  6. ftp上传-下载文件通用工具类,已实测

    话不多说直接上代码 package com.springboot.demo.utils;import lombok.extern.slf4j.Slf4j; import org.apache.comm ...

  7. ftp上传下载文件详解

    首先导入包 import org.apache.commons.NET.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; FTPCli ...

  8. java ftp上传文件_jaVA使用FTP上传下载文件的问题

    为了实现 FTP上传下载,大概试了两个方法 sun.net.ftp.FtpClient org.apache.commons.net 一开始使用sun.net.ftp.FtpClient,结果发现唯一 ...

  9. linux ftp上传下载文件,Linux下ftp命令上传下载文件

    命令行下连接ftp服务器 方式一: 默认端口 ftp hostname 方式二: 指定端口 [ec2-user@ip-99-240-80-144 ~]$ ftp ftp> open 99.240 ...

最新文章

  1. Cpp 对象模型探索 / operator new、operator delete、operator new[] 和 operator delete [] 重载
  2. 【Linux病毒】腾讯云 cron、sshd 进程CPU占用超95%(亡命徒 Outlaw 僵尸网络攻击)问题排查及处理步骤
  3. Sentinel(十五)之在生产环境中使用 Sentinel
  4. php 标题去重复思想,WordPress网站发布文章时如何防止发布重复标题的文章?
  5. [Hive] - Hive参数含义详解
  6. 【Python五篇慢慢弹】快速上手学python
  7. Java执行jar总结
  8. read, readline, readlines
  9. MapReduce 初学总结
  10. .dat文件写入byte类型数组_不可不知的可变Java长数组
  11. web 开发生产率_11种可帮助Web开发人员克服最后期限的生产力工具
  12. QAC静态代码测试工具试用介绍_c/c++
  13. 内网机器如何连接公网
  14. it计算机职业评估,最新澳洲技术移民评估ACS 职业评估(计算机IT类)
  15. MAGIX Sequoia 15 v15.5 Windows 高级母带广播音频制作软件
  16. 七牛云 阿里云图片存储 新增套餐 分页 定时任务Quartz(作业:编辑和删除功能)
  17. 电锯惊魂—经典的语言
  18. 分开旅行—没有什么失恋是一场旅行解决不了的
  19. jpa 托管_jpa深入
  20. Word无法启动转换器mswrd632.wpc”方法

热门文章

  1. python的基本数据类型一
  2. startRecord:fail auth deny
  3. 【生活指南】我的未来我做主
  4. checkbox(复选框)和radio(单选按钮)的区别与详解
  5. PGP管理员:拒绝短密钥,告别信任危机
  6. python - 课后作业 弹珠游戏
  7. GitHub中的fork,star,watch都是什么意思
  8. 3.1 Forwards and Futures
  9. 作弊考生VS监考老师
  10. 非以其无私邪故能成其私