服务器端的HTTP POST请求进度

时间:2014-10-02 07:02:33

标签: c# http servicestack

我正在开发一个移动应用程序来将图片上传到服务器。在服务器端,我有C#和ServiceStack。我想知道是否有办法捕获上传过程的进度(通过HTTP POST multipart / form-data),并在每次请求的一大块到达时执行(通过另一个客户端通知其进度) Web Socket)。

我知道从上传客户端可以很容易地了解已经发送了多少数据,但我也希望在服务器端知道这些数据。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

无法在服务器上提供文件上传的进度更新,因为只有在服务器收到文件后才会调用像ServiceStack这样的HttpHandlers。

我会坚持使用客户端回调来报告上传服务器的进度,例如:

client.OnUploadProgress = (bytesWritten, total) => 
    "Written {0}/{1} bytes...".Print(bytesWritten, total);

client.PostFileWithRequest<UploadResponse>(url, new FileInfo(path), 
    new Upload { CreatedBy = "Me" });