5
Tôi đang cố gắng tải tệp lên máy chủ bằng QNetworkAccessManager trong Qt 5.0 trên CentOS 6.4.Lỗi tải lên tệp với QNetworkAccessManager
Tôi đã thử làm theo một vài ví dụ trực tuyến nhưng không có ví dụ nào trong số đó hoạt động. QFTP hoạt động tốt nhưng chậm và hiện không được chấp nhận. Mã của tôi cho việc tải lên là:
void ftp::start(QString fileLocation)
{
QUrl url2("ftp://example.com");
url2.setUserName(ftpusername);
url2.setPassword(ftppassword);
data = new QFile(fileLocation, this);
if (data->open(QIODevice::ReadOnly)) {
nam = new QNetworkAccessManager();
reply = nam->put(QNetworkRequest(url2), data);
connect(nam, SIGNAL(finished(QNetworkReply*)),this, SLOT(requestFinished(QNetworkReply*)));
connect(reply, SIGNAL(uploadProgress(qint64, qint64)), SLOT(uploadProgress2(qint64, qint64)));
connect(reply, SIGNAL(finished()), SLOT(uploadDone()));
}
else
{
qDebug() << "Could not open file to FTP";
}
}
void ftp::uploadProgress2(qint64 done, qint64 total) {
double percent;
if(done > 0 && total > 0)
{
percent = (done*100)/total;
}
myParent->addLog("Completed: " + QString::number(done) + "/" + QString::number(total) + " " + QString::number(percent) + "%");
}
void ftp::uploadDone() {
qDebug() << "Error Code: " << reply->error();
data->deleteLater();
reply->deleteLater();
}
void ftp::requestFinished(QNetworkReply* r)
{
qDebug() << "Finished ";
qDebug()<< r->errorString();
}
Đây là sản phẩm từ chương trình của tôi:
Completed: 0/0 0%
Finished
"Cannot open ftp://username:[email protected]/: is a directory"
Error code: 202
Nhìn vào các tài liệu, 202 phương tiện:
QNetworkReply::ContentOperationNotPermittedError The operation requested on the remote content is not permitted
Bất kỳ lời đề nghị?