一个简单的Ftp客户端文件上传/下载操作示例。
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/hello.png"); /* 装载本地文件 */QFile file("/Desktop/hello.png"); file.open(QIODevice::ReadOnly);/* 读取本地文件数据 */QByteArray data &#61; file.readAll(); file.close();QNetworkRequest request(url);/* 上传数据&#xff0c;上传成功后会在远端创建/tmp/hello.png文件 */QNetworkReply* reply &#61; manager.put(request, data); QEventLoop eventLoop; QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));/* 进入等待&#xff0c;但事件循环依然进行 */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();}
关注Qt君公众号获取更多知识。