C# ASP.NET文件上载到代码背后的生命周期是什么?

C# ASP.NET文件上载到代码背后的生命周期是什么?,c#,asp.net,file-upload,C#,Asp.net,File Upload,我想知道在用户选择在ASP.NET页面上提交上传文件后,会执行哪些事件(如果有) 我需要在IIS级别调整任何内容吗 当用户上载文件时是否应触发页面生命周期事件 我在Visual Studio的开发服务器上看到与部署到的IIS服务器不同的行为: 在开发服务器上,life 循环事件在文件被删除时触发 在已部署的服务器上选择 他们没有 为了调整上传的默认行为,我需要覆盖哪些类,我应该更改哪些web.config设置 我遇到的问题是,如何在上传文件之前但在选择文件之后执行代码 另外,这与我之前的一个问题

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

我需要在IIS级别调整任何内容吗

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

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

在开发服务器上,life 循环事件在文件被删除时触发 在已部署的服务器上选择 他们没有

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

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


另外,这与我之前的一个问题有关,但为了理解整个上传过程,我采用了一种非常不同的方式,所以我认为这是一个完全不同的问题。

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

我所做的是一个从upload对象和OnLoad事件派生的类,如下所示:

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

--编辑: 哦,我重读了你的帖子,你想知道人们何时选择了一个文件,但它还没有发送到服务器? 这就是javascript。 服务器端在不向服务器发送信息的情况下无法知道用户何时选择它。 您可以开发一个WebService函数,当输入的onchanged被调用时调用它,但我不知道这是否是一个好主意。 你能用javascript来做这个吗

尝试:


希望有帮助。

要在上传之前执行代码,必须是浏览器中运行的JavaSript代码。请参阅我对有关根据类型筛选文件上载的问题的回答:


您使用什么控件来获取文件上传界面?没有特殊控件,我使用ASP.NET表单,例如:嗨,是的,我发现这在某种程度上很有用,你看,我正在尝试检查文件大小,我认为JavaScript无法做到这一点。。最后,我想测量一下请求的大小,其中包含要发送的文件的大小。我相信您必须查看Flash或Silverlight上传程序。如果有一个通过JavaScript钩子提供信息的免费上传程序,我不会感到惊讶。不幸的是,我不知道我脑子里有什么想法。是的,任何ActiveX、Flash或SilverLight应用程序都可以,JavaScript无法做到这一点,我想…(那太好了):)谢谢,JavaScript可以触发服务器端的东西,但是我想知道我是否可以通过httpcontext捕捉到一些东西,这样我就可以实际操纵正在发生的事情。。检查上传的文件大小等等。让我困惑的是,当您选择一个文件时,Visual Studio中的内置服务器Cassini确实会触发事件。。为什么会这样?如果是这样,为什么它会在Cassini服务器上触发,而不是在部署的IIS上触发?Cassini是Visual Studio的专用web服务器,它可能与IE甚至web浏览器的COM控件集成,因此在Visual Studio之外的服务器上就不一样了。。。您可以使用javascript检查该文件,但最多只能在计算机中看到文件名和路径。您可以使用activeX获取文件大小,但它仅适用于IE,此处:。对于其他浏览器,我认为flash可能会帮助您。我们帮你了吗?
  <asp:textbox id="t1" runat="server"/>
  t1.Attributes.Add("onchange", "alert('it changed its value: ' + this.value);");