Search code examples
qtqt4rapidshare

Uploading files to Rapidshare using Qt


I am trying to upload files using Rapidshare API and Qt. The API can be called via POST method with all the parameters in POST method.

I am able to upload the file but if the file contain characters like '&', the file not gets fully uploaded(in a way i am getting corrupted file when downloadin the same from rapidshare).

I am doin it thru following code:

    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()));

    ...

While posting the file data why rapidshare interprets character like '&' as query seperator also i compared original file with uploaded file using hex dump and found its interpreting 'CR' char also. I tried with setting raw headers but to no avail.

How to send binary data as it is to rapidshare using the API. Please let me know if i am missing something.


Solution

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