使用Qt将文件上传到Rapidshare

时间:2012-08-03 07:57:05

标签: qt qt4 rapidshare

我正在尝试使用Rapidshare API和Qt上传文件。可以通过POST方法调用API,并使用POST方法中的所有参数。

我可以上传文件,但如果文件中包含'&'这样的字符,则该文件无法完全上传(从某种程度上说,当我从相同的文件中下载文件时,我的文件已损坏)。

我通过以下代码进行操作:

    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​​将二进制数据原样发送到rapidshare。如果我错过了什么,请告诉我。

1 个答案:

答案 0 :(得分:1)

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