2013-08-04 4 views
1

Qt의 QNetworkAccessManager 클래스를 사용하여 파일을 업로드하려고합니다. 여기 코드는 다음과 같습니다Qt의 QNetworkAceessManager 클래스를 사용하여 이미지를 업로드 할 수 없습니다.

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> 

내가 이해가 안 돼요.

"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> 
" 

는 이유입니다 : 나 이미지가 서버에 업로드해야합니다 곳으로 UPLOAD_URL 경로에서 파일 이름을 포함하여 시도했지만 내 말은 다른 오류 메시지를 가지고이 시간 (이것은 어떤 블로그에 주어진 솔루션이었다) 업로드하려고 할 때 다운로드 오류가 표시됩니까?

답변

관련 문제