asp.net fileupload控件上传图片并预览图片
页面代码:
<form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Button ID="Button1" runat="server" Text="上传" Width="54px" OnClick="Button1_Click" /> <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label> <asp:Image runat="server" ID="Image1" Style="z-index: 102; left: 20px; position: absolute; top: 49px" Width="73px" /> </div> </form>
后台代码:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace Web.File { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } #region 文件上传 /// <summary> /// 文件上传 /// </summary> protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.FileName == "") { this.Label1.Text = "上传文件不能为空"; return; } bool fileIsValid = false; //如果确认了上传文件,则判断文件类型是否符合要求 if (this.FileUpload1.HasFile) { //获取上传文件的后缀 String fileExtension = System.IO.Path.GetExtension(this.FileUpload1.FileName).ToLower(); String[] restrictExtension = { ".gif", ".jpg", ".bmp", ".png" }; //判断文件类型是否符合要求 for (int i = 0; i < restrictExtension.Length; i++) { if (fileExtension == restrictExtension[i]) { fileIsValid = true; } //如果文件类型符合要求,调用SaveAs方法实现上传,并显示相关信息 if (fileIsValid == true) { //上传文件是否大于10M if (FileUpload1.PostedFile.ContentLength > (10 * 1024 * 1024)) { this.Label1.Text = "上传文件过大"; return; } try { this.Image1.ImageUrl = "~/File/" + FileUpload1.FileName; this.FileUpload1.SaveAs(Server.MapPath("~/File/") + FileUpload1.FileName); this.Label1.Text = "文件上传成功!"; } catch { this.Label1.Text = "文件上传失败!"; } finally { } } else { this.Label1.Text = "只能够上传后缀为.gif,.jpg,.bmp,.png的文件"; } } } } #endregion } }
Web.config 配置:
<!--因为FileUpload 控件上传最大为4M,如果要上传更大文件,改下maxRequestLength的大小--> <configuration> <system.web> <compilation debug="true" targetFramework="4.0" /> <httpRuntime requestValidationMode="2.0" maxRequestLength="10485760" executionTimeout="3600" appRequestQueueLimit="10000"/> </system.web> </configuration>