【发布时间】:2023-03-03 00:52:01
【问题描述】:
在将文件上传到 Amazon S3 时,我想在网页的进度栏中显示文件上传进度……
在我的网页上,我从文件输入中选择一个文件,该文件使用 Ajax POST 请求调用我的控制器。
在控制器中,我从发布的请求中提取文件。
var hpf = Request.Files[1];
然后我调用一个使用 AmazonS3Client 的方法..
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 发送回浏览器。
如果我能得到这些数据,我就能更新我的进度条。
【问题讨论】:
-
如果你使用ajax并从浏览器直接上传到s3你会显示一个进度条。
-
@user1526912 您可以使用
xhr.upload.onprogressright / 在客户端检查已传输的字节数
标签: c# asp.net amazon-web-services amazon-s3 amazon-ec2