我想在我的网页上的进度条中显示文件上传进度,同时将文件上传到Amazon S3 …
在我的网页上,我从一个文件输入中选择一个文件,该文件用Ajax POST请求调用我的控制器.
var hpf = Request.Files[1];
UploadVideoMultiPart(hpf.InputStream,fileName)
上述方法完成了上传到S3的完美,在此过程中重复发送上传的字节数.
public static void UploadPartProgressEventCallback(object sender,StreamTransferProgressArgs e) {// Process event. Var progress = (string.Format("{0}/{1}",e.TransferredBytes,totalContentLength)); }
例:
TransferredBytes TotalBytes
8778 152652556
2562 152652556
如何在不停止上传线程的情况下将UploadPartProgressEventCallback中的数据发送回浏览器.
如果我能得到这个数据,我可以更新我的进度条.
解决方法
You Need something to communicate between your Server to Client
在这种情况下,SignalR是您的救星,借助SignalR,您可以将内容从服务器端推送到客户端.
整个文档在这里是SignalR@GitHub
你可以按照这些
web resources以及
(假设你已经通过上面的链接)
现在回到你的需要,
you can even hook SignalR broadcast ie can call client method and manage
groups outside the Hub class
这个例子在这里精美解释In this Example
虽然如果你不熟悉,学习如何,但相信我,这不会花费很多时间来掌握它,