如何报告文件上传进度?

时间:2009-09-25 16:57:16

标签: asp.net file-upload progress-bar httpmodule

我一直在尝试实现ajax样式的文件上传。我想知道我们必须做些什么来报告上传进度。我想在我的asp.net网页上实现这个。

我理解我们可以在网页上上传文件ajax风格的机制。我一直在谷歌搜索如何显示进度条,但我没有看到正确的解释。但我已经明白,我们必须从服务器端管理这个如何。 (cf file upload progress

任何想法/代码将不胜感激。提前完成。

1 个答案:

答案 0 :(得分:1)

我不确定你为什么要自己动手,因为有很多使用Ajax,Flash,Silverlight等的上传控件。但是,这个概念完全是为了查询进度并返回当前状态。 This guy went through the same process and shows how he built a component using jQuery

显示进度需要客户端从服务器获取反馈。这意味着重复查询服务器以获得进度。使用该信息显示客户端的进度。

在您的服务器上,您不仅要接受入站文件上传,还要回应总进度。如果您在请求中传递Content-Length标头,则很容易;问题在于你将无法依赖这些信息。有处理这个的策略,但它要求你有代码接受上传的文件,因为你将不得不读取入站位。

此时,您还有其他需要关注的事情,这些事情远远超出了进度条的范围,例如处理Web服务器进程中的大型文件上传(进程外对其不太有害)你的服务器。)

由于涉及的复杂性,我建议您找到现有的组件,而不是创建自己的组件。