代码背后的ASP.NET文件上传的生命周期是什么?

时间:2009-10-20 01:17:55

标签: c# asp.net file-upload

我想知道在用户选择提交文件以便在ASP.NET页面上传后,会执行哪些事件(如果有)。

我是否需要在IIS级别调整任何内容?

用户上传文件时是否应触发页面生命周期事件?

对于我部署到的IIS服务器,我在Visual Studio的开发服务器上看到了不同的行为:

  

在开发服务器上,生活   循环事件在文件时被触发   在已部署的服务器上被选中   他们不.. ..

我需要覆盖哪些类,我应该更改哪些web.config设置,以便调整上传的默认行为?

我遇到的问题是找到有关如何在文件上传之前执行代码的文档,但是在选择了文件之后。

P.S。这与我之前的here问题有关,但是为了理解整个上传过程,我们以一种非常不同的方式接近,所以我认为这是一个不同的问题。

2 个答案:

答案 0 :(得分:2)

不,它没有文件上传的事件(可能在.net 4上)

我所做的是一个派生自上传对象和OnLoad事件的类:

public event EventHandler OnUpload;
protected void OnLoad(...){
   if (this.HasFile && this.OnUpload != null)
     this.OnUpload(this, EventArgs.Empty);
}

那种。

- 编辑: 哦,我重新阅读你的帖子,你想知道人们什么时候选择一个文件但是还没有发送到服务器? 多数民众赞成javascript。 服务器端无法知道人们何时选择它而不向服务器发送信息。 您可以开发一个在调用输入的onchanged时调用的WebService函数,但我不知道这是不是一个好主意。 你可以使用javascript吗?

尝试:

  <asp:textbox id="t1" runat="server"/>

代码背后:

  t1.Attributes.Add("onchange", "alert('it changed its value: ' + this.value);");
希望它有所帮助。

答案 1 :(得分:1)

要在上传之前执行代码,必须在浏览器中运行JavaScript代码。请参阅我对基于类型过滤文件上传的问题的回答:

How to filter which files can be seen on upload dialog box?