2012-08-03 2 views
0

Rapidshare API 및 Qt를 사용하여 파일을 업로드하려고합니다. API는 POST 메서드의 모든 매개 변수를 사용하여 POST 메서드를 통해 호출 할 수 있습니다.Qt를 사용하여 Rapidshare에 파일 업로드

파일을 업로드 할 수 있지만 파일에 '&'과 같은 문자가 포함되어 있으면 파일이 완전히 업로드되지 않습니다 (rapidshare에서 다운로드 할 때 파일이 손상되는 방식으로).

나는 다음과 같은 코드를 통해 그것을 지내 오전 :

QByteArray postData; 

    postData.append(QString("sub=upload&login=%1&password=%2&filename=%3").arg(...).arg(...).arg(...)); 

    QByteArray data;  

    if(FileMan.ReadFromDataFile(data) == true){ 
     // Read file data 
    } 

    postData.append("&filecontent=").append(data); 

    ... 

    QNetworkReply *reply = manager->post(request, postData); 

    connect(reply, SIGNAL(finished()), this, SLOT(onUploadCompleted())); 

    ... 

에 Rapidshare는 '&'질의 구분자는 내가 진수 덤프를 사용하여 업로드 된 파일을 원본 파일을 비교 발견의 통역처럼 문자를 해석하는 이유는 파일 데이터를 게시하는 동안 'CR'문자도. 원시 헤더를 설정하려고했지만 아무 소용이 없습니다.

API를 사용하여 이진 데이터를 빠른 시일로 전송하는 방법. 내가 뭔가를 놓친다면 알려줘.

+0

당신은 어떻게 든 파일을 인코딩하고 _content - 전송 - Encoding_ 헤더 필드를 설정하지 마십시오? – scai

답변

1

postData.append("&filecontent=").append(data.toPercentEncoding());

+0

고맙습니다! @vtmarvin, 그것은 효과가 ... –