下面是一个使用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助手提供,问题来源于学员提问