QT 5将文件上传到ftp服务器(服务端无需写逻辑)
ftp上传文件
void FtpManager::FtpUpLoadFile(QString path)
{
QFile*file = new QFile(path);
file->open(QIODevice::ReadOnly);
QByteArray byte_file = file->readAll();
QNetworkAccessManager *accessManager = new QNetworkAccessManager(this);
accessManager->setNetworkAccessible(QNetworkAccessManager::Accessible);
QUrl url("ftp://***.**.***.**/picture/report.pdf");
url.setPort(21);
url.setUserName("****");
url.setPassword("*********");
QNetworkRequest request(url);
QNetworkReply*reply = accessManager->put(request, byte_file);
connect(reply,&QNetworkReply::uploadProgress,[=](qint64 cur,qint64 total){
ui->progressBar->setMaximum(total);
ui->progressBar->setValue(cur);
});
connect(accessManager,&QNetworkAccessManager::finished,[=](){
QMessageBox::information(this,"提示","上传完成!");
});
}
ftp下载文件
void FtpManager::FtpDownLoadFile(QString path)
{
QFile *file = new QFile(path);
file->open(QIODevice::WriteOnly);
this->setNetworkAccessible(QNetworkAccessManager::Accessible);
QUrl url("ftp://159.75.127.51/picture/edx.jpg");
url.setPort(21);
url.setUserName("liukai");
url.setPassword("6GzBpXT8Ewb5PaNy");
QNetworkRequest request(url);
m_reply = this->get(request);
connect(m_reply,&QNetworkReply::downloadProgress,[=](qint64 cur,qint64 total){
emit SigPro(cur,total);
});
connect(m_reply,&QNetworkReply::readyRead,[=](){
QByteArray data = m_reply->readAll();
m_data.push_back(data);
file->write(data);
});
connect(this,&QNetworkAccessManager::finished,[=](QNetworkReply*reply){
emit SigDownLoadOk();
file->close();
if(m_reply){
m_reply->deleteLater();
}
});
}