Я пытаюсь загрузить файл с помощью класса Qt QNetworkAccessManager. Вот код:
void TrainWindow::upload ()
{
QString upload_url;
QString trigger_url;
upload_url.append(hostname);
trigger_url.append(hostname);
upload_url.append("darshan");
data = new QFile("/home/darshan/aindra/1.png", this);
if (data->open(QIODevice::ReadOnly))
{
manager = new QNetworkAccessManager();
reply = manager->post(QNetworkRequest(QUrl(upload_url)), data);
connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(requestFinished(QNetworkReply*)));
connect(reply, SIGNAL(uploadProgress(qint64, qint64)), SLOT(uploadProgress(qint64, qint64)));
}
else
{
qDebug() << "Could not open file to FTP";
}
}
void TrainWindow::requestFinished (QNetworkReply *r)
{
qDebug() << "Finished ";
qDebug()<< r->errorString();
qDebug()<<r->attribute( QNetworkRequest::HttpStatusCodeAttribute).toInt();
qDebug()<<r->readAll();
r->deleteLater();
}
void TrainWindow::uploadProgress(qint64 done, qint64 total) {
double percent;
if(done > 0 && total > 0)
{
percent = (done*100)/total;
}
qDebug()<<"Completed: " + QString::number(done) + "/" + QString::number(total) + " " + QString::number(percent) + "%";
}
Когда я пытаюсь загрузить, я получаю сообщение об ошибке:
"Unknown error"
301
"<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href=(given address)>here</a>.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at (given address) Port 80</address>
</body></html>
Я не понимаю, почему я получаю эту ошибку. Я попытался включить имя файла в путь upload_url туда, где изображение должно быть загружено на сервер (это было решение, указанное в каком-то блоге), но на этот раз я получил другое сообщение об ошибке:
"Error downloading (given address) - server replied: Not Found"
404
"<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /darshan/1.png was not found on this server.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at (given address) Port 80</address>
</body></html>
"
Почему при загрузке отображается ошибка загрузки?