我试图通过 SOAP 请求上传文件,它运行良好,但我无法获得上传请求量的进度。
问问题
703 次
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 回答