qt ftp上传

1、在.pro文件加上

QT      += network

2、实现

main.cpp

#include <QApplication>
#include <QFile>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>

bool ftp_upload(QString loadFile,QString ftpServerFile);

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

    ftp_upload("./202008.mp4","/home/zheng/ftp/202008.mp4");

//    return a.exec();
    return 0;
}



/* 通过ftp上传文件
 * loadFile:        本地文件位置
 * ftpServerFile:   储存到ftp服务器的位置
 */
bool ftp_upload(QString loadFile,QString ftpServerFile)
{
    QNetworkAccessManager manager;
    QUrl url;

    url.setScheme("ftp");           // 设置通讯协议
    url.setHost("192.168.0.23");    // 设置ftp服务器地址
    url.setPort(21);                // 设置端口号
    url.setUserName("test");      // 设置用户名
    url.setPassword("abcdd");       // 设置密码
    url.setPath(ftpServerFile);   // ftp服务器路径

    QFile file(loadFile);       // 加载载本地文件
    file.open(QIODevice::ReadOnly);
    QByteArray data = file.readAll();   // 读取本地文件数据
    file.close();

    QNetworkRequest request(url);
    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();
        return false;
    }
    return true;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值