ZBLOG

QT 使用QNetworkAccessManager实现文件上传到FTP

下面是一个使用QNetworkAccessManager实现文件上传到FTP的示例代码:

#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QUrl>
#include <QDebug>

// 定义一个函数用于上传文件到FTP服务器
void uploadFileToFTP(const QString& filePath, const QUrl& url, const QString& username, const QString& password)
{
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly))
    {
        qDebug() << "无法打开本地文件:" << file.errorString();
        return;
    }

    QByteArray data = file.readAll();
    file.close();

    QNetworkAccessManager manager;
    QNetworkRequest request(url);
    request.setUserName(username);
    request.setPassword(password);

    QNetworkReply* reply = manager.put(request, data); // 发送PUT请求进行文件上传

    QObject::connect(reply, &QNetworkReply::finished, [=]() {
        if (reply->error() == QNetworkReply::NoError) {
            qDebug() << "文件上传成功";
            // 其他操作...
        } else {
            qDebug() << "文件上传失败:" << reply->errorString();
            // 其他错误处理...
        }

        reply->deleteLater();
    });
}

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);

   QString filePath = "/path/to/local/file"; // 本地文件路径
   QUrl url("ftp://example.com/path/to/destination/file"); // FTP服务器地址和目标路径
   QString username = "your_username";
   QString password = "your_password";

   uploadFileToFTP(filePath, url, username, password); // 调用上传函数

   return a.exec();
}

请根据你的实际情况修改本地文件路径、FTP服务器地址、目标路径,以及登录账户的用户名和密码。同时,需要在.pro文件中添加QT += network以引入网络模块。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=12326

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?