SOAP,在上传c#时获取上传请求的进度

发布于 2024-08-19 23:32:28 字数 47 浏览 7 评论 0原文

我尝试通过 SOAP 请求上传文件,并且工作正常,但我无法获取请求上传量的进度。

Im trying to upload a file through a SOAP request , and it worked perfectly , but I couldnt get a progress for the uploaded amount of the request .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

醉城メ夜风 2024-08-26 23:32:28

您可以尝试以“块”形式发送文件,例如一次 1MB,而不是一次全部发送?这样,当每个块完成时,您将能够更新进度。

You could try sending the file up in "chunks", like 1MB at a time rather than sending it all up at once? That way when each chunk completes, you'll be able to update the progress.

差↓一点笑了 2024-08-26 23:32:28

我现在可以回答我的问题,

我不再使用 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
}

然后继续发送请求。并收到回复。

I can answer my question now,

Im not using SOAP anymore to upload my files in my solution, Im using HTTPWebRequest now,

1) yes im uploading my large files in chunks (each chuck is 1MB),
2) each chunk(1 MB) can give me progress each BufferSize (4 KB in my case);

so there is a big loop, foreach(Chunk in File) {} .

and inside the big loop there is another loop, as Im using 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
}

then continue to send the request. and receive the response.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文