使用Qt将文件上载到Rapidshare

使用Qt将文件上载到Rapidshare,qt,qt4,rapidshare,Qt,Qt4,Rapidshare,我正在尝试使用RapidShareAPI和Qt上传文件。可以使用POST方法中的所有参数通过POST方法调用API 我可以上载该文件,但如果该文件包含诸如“&”之类的字符,则无法完全上载该文件(在某种程度上,当从rapidshare以相同的方式下载时,我的文件已损坏) 我正在通过以下代码进行操作: QByteArray postData; postData.append(QString("sub=upload&login=%1&password=%2&f

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

我可以上载该文件,但如果该文件包含诸如“&”之类的字符,则无法完全上载该文件(在某种程度上,当从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将二进制数据原样发送到rapidshare。如果我遗漏了什么,请告诉我。

postData.append(“&filecontent=”).append(data.toPercentEncoding())

您不需要以某种方式对文件进行编码并设置内容传输编码头字段吗?