SOAPリクエストを介してファイルをアップロードしようとしていますが、完全に機能しましたが、アップロードされたリクエストの量の進捗状況を取得できませんでした。
2 に答える
1
一度にすべてを送信するのではなく、一度に1MBのように、ファイルを「チャンク」で送信してみることができますか?そうすれば、各チャンクが完了すると、進行状況を更新できます。
于 2010-02-02T14:12:31.533 に答える
0
私は今私の質問に答えることができます、
ソリューションにファイルをアップロードするためにSOAPを使用しなくなりました。今、HTTPWebRequestを使用しています。
1)はい、大きなファイルをチャンク(各チャックは1MB)でアップロードします。2)各チャンク(1 MB)は、各BufferSize(私の場合は4 KB)で進行状況を示します。
したがって、foreach(Chunk in File){}という大きなループがあります。
大きなループの中には、ImがHTTPWebRequestを使用しているように、別のループがあります。
long buffer = 4096;
Stream stm = request.GetRequestStream();
while (remainingOfChunkWithReq != 0)
{
stm.Write(buffer, 0, bytesRead);
remainingOfChunkWithReq = remainingOfChunkWithReq - bytesRead;
bytesRead = memoryStream.Read(buffer, 0, bytesSize);
//Send Progress
}
その後、リクエストの送信を続行します。応答を受け取ります。
于 2011-05-01T09:20:48.573 に答える