0

Rapidshare API と Qt を使用してファイルをアップロードしようとしています。API は、POST メソッドのすべてのパラメーターを使用して POST メソッドを介して呼び出すことができます。

ファイルをアップロードすることはできますが、ファイルに「&」などの文字が含まれていると、ファイルが完全にアップロードされません (つまり、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 が「&」などの文字をクエリ区切り文字として解釈する理由についても、16 進ダンプを使用して元のファイルとアップロードされたファイルを比較し、「CR」文字の解釈を見つけました。生のヘッダーを設定してみましたが、役に立ちませんでした。

APIを使ってバイナリデータをそのままrapidshareに送信する方法。何か不足している場合はお知らせください。

4

1 に答える 1

1

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

于 2012-08-03T09:04:04.273 に答える