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) {} 。

在大循环内还有另一个循环,因为我使用的是 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 回答