2

SOAPリクエストを介してファイルをアップロードしようとしていますが、完全に機能しましたが、アップロードされたリクエストの量の進捗状況を取得できませんでした。

4

2 に答える 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 に答える