Welcome

首页 / 网页编程 / ASP.NET / ASP.NET让FileUpload控件支持浏览自动上传功能的解决方法

ASP.NET的FileUpload控件默认是不支持服务端的onchange事件的,此时可以用一种变通的方法来实现这一功能。
这就需要借用客户端的onchange事件,调用__doPostBack方法来用LinkButton的OnClick事件模拟一个事件触发的过程,具体代码如下:

客户端:

<asp:FileUpload ID="fuPhoto" onchange="javascript:__doPostBack("lbUploadPhoto","")" runat="server" ToolTip="选择图片" /><asp:LinkButton ID="lbUploadPhoto" runat="server" OnClick="lbUploadPhoto_Click"></asp:LinkButton>

后台代码:

//自动上传事件protected void lbUploadPhoto_Click(object sender, EventArgs e){fileUpload();}//从控件上传文件public void fileUpload(){if (fuPhoto.PostedFile != null && fuPhoto.PostedFile.ContentLength > 0){string ext = System.IO.Path.GetExtension(fuPhoto.PostedFile.FileName).ToLower();if (ext != ".jpg" && ext != ".jepg" && ext != ".bmp" && ext != ".gif"){return;}string filename = "Image_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ext;string path = "./UploadPhoto/" + filename;fuPhoto.PostedFile.SaveAs(Server.MapPath(path));Response.Redirect("ImageCut.aspx?Picurl=" + Server.UrlEncode(path));}else{//do some thing;}}