触发文件上传时,回发事件后面的代码是否在文件上传完成之前触发?

时间:2009-12-10 04:15:40

标签: asp.net asyncfileupload

我正在尝试处理用户从asp.net webform将数据发回服务器时发生的确切过程。文件上传是否始终在回发开始之前完成,或者在请求结束之前完成某些处理。

作为这个问题的一部分,有些人如何能够估计上传特定文件所需的时间,因为他们必须至少知道代码中发生的事情,然后文件会假设没有完全上传?

1 个答案:

答案 0 :(得分:1)

可以估算上传时间和显示进度的网络应用通常使用在客户端上运行的第三方插件进行上传(flash上​​传器,silverlight上传器,java插件,activeX控件等)。这些通常执行异步回发并管理自己与服务器的网络连接。通常是客户端代码确定上传进程和速度等等。

通过HTML输入控件上传文件的标准HTTP支持不是很聪明。因此,如果您正在使用asp.net FileUpload控件(它只是将HTML输入标记呈现给浏览器),您将很难从页面代码中获取请求,直到文件的整个上载完成为止。

然而;您可以在上传完整文件之前在HttpModule中拦截请求。 asp.net生命周期中的一些早期事件将在文件上载完成之前触发,但老实说,我不确切地知道在等待其余的帖子数据之前你得到的请求有多远。我知道虽然调用了BeginRequest(我之前已经将代码连接起来用于文件上传)。

所以是的,你可以在这里做一些工作,但是那时你的传入请求内容的信息将非常有限。