在asp.net网站的更新面板中自动将文件上传到服务器

我在更新面板中有一个文件上传,还有一个上传按钮,用于将文件上传到服务器。 是否可以在不单击上传按钮的情况下上传文件? 我想删除上传按钮,并在从用户的机器中选择文件后立即上传文件 。 或者,有一个4秒计时器,然后调用upload_click来检查fileupload是否有文件。 如果没有更新面板内的按钮,我怎么能这样做?

          protected void Upload_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { //create the path to save the file to string fileName = Path.Combine(Server.MapPath("~/Bulk Upload"), FileUpload1.FileName); //save the file to our local path FileUpload1.SaveAs(fileName); } } 

我相信您可以使用HTML INPUT File元素上的任何事件来启动完整的回发,这是您自动上传文件所需的全部内容。

谷歌,至少在标准界面上,使用某种Flash插件来完成你想要的。

可能有一些其他jQuery插件可以提供开箱即用的function。 例如,这个似乎就是这样做的。

您需要使用一些客户端代码来模仿点击,例如使用Javascript中的submit – 至少有一个值得注意的浏览器,我认为,这不支持IE。

否则,您可以使用jQuery ajax调用静态Web方法,这些方法在文件上载控件的值发生更改时即时进行上传。

您可以使用display:none inline style隐藏Upload按钮,并将以下代码添加到Page_PreRender方法:

 FileUpload1.Attributes["onchange"] = ClientScript.GetPostBackClientHyperlink(Upload, ""); 

或者考虑使用AjaxControlToolkit中的AsyncFileUpload控件