[英]Progress Indicator With FileUpload control
我有一个网页,我希望人们能够上传内容。 (只有少数人使用它,因为它是访问限制的,所以我不太担心任何DOS类型的攻击。)
我正在使用fileUpload控件来执行此操作:
protected void Button1_Click(object sender, EventArgs e)
{
if (fileUploader.HasFile)
try {
fileUploader.SaveAs(Server.MapPath("Uploads\\") + fileUploader.FileName);
errorMessage.Text = "File name: " +
fileUploader.PostedFile.FileName + "<br>" +
fileUploader.PostedFile.ContentLength + " kb<br>";
}
catch (Exception ex) {
errorMessage.Text = "ERROR: " + ex.Message.ToString();
}
else
{
errorMessage.Text = "You have not specified a file.";
}
}
文件最大可达50MB(我已更改web.config以允许此操作)。 我遇到的问题是,对于大文件,用户无法看到上传的进度。
我想知道如何在页面上显示进度,以便用户可以看到正在发生的事情。 没有任何想象力的东西 - 只是像:
上传的字节数/总字节数
没关系。 我可以使用postingFile.ContentLength获取总字节数,但不知道如何获取上传的字节数。
此外 - 我是否能够在上传过程中刷新屏幕?
干杯,
本
这个答案并非特定于ASP ......
文件上载通常通过使用Content-type: multipart/form-data
发出HTTP POST
请求来完成。 这包括请求正文的一个部分中的文件正文。
因此,在给定的浏览器选项卡中,在给定时间只能加载一个页面。 简短的回答是,除非你真的很喜欢iframe(一个用于状态,一个用于上传),否则你将无法显示状态。
但是 ,如果您使用Flash,则可以。 http://www.uploadify.com/是一个很棒的小前端插件(用于jQuery),它允许用户选择多个文件,并将它们全部上传,显示整个过程中的状态。 我只是将其插入一个将上传限制为64M的网站。 工作真棒。
我使用了几个商业组件来做到这一点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.