在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控件