ASP.NET FileUpload 上传图片实例

复制代码 代码如下:

  <table style="width: 100%">

  <tr>

  <td>

  <asp:ValidationSummary ID="ValidationSummary1" runat="server" />

  <br />

  <asp:FileUpload ID="FileUpload1" runat="server" />

  <asp:Button ID="btn_upload" runat="server" OnClick="btn_upload_Click"

  Text="Upload" />

  <asp:CustomValidator ID="CustomValidator1" runat="server"

  ControlToValidate="FileUpload1" Display="Static"

  ErrorMessage="You should only can upload image file such as files with .jpg or gif extension"

  OnServerValidate="Image_validate">*</asp:CustomValidator>

  </td>

  </tr>

  </table>

  Add to code behind cs file

  

复制代码 代码如下:

  using System;

  using System.Data;

  using System.Configuration;

  using System.Collections;

  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;

  using System.IO;

  using System.Drawing;

  public partial class practice_FileUpload : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  }

  protected void btn_upload_Click(object sender, EventArgs e)

  {

  if (Page.IsValid)

  {

  string path = @Page.MapPath("User_Edit.aspx").Replace("User_Edit.aspx", "") + "Documents\\";

  string s = path + Session["UserName"].ToString();

  if (!System.IO.Directory.Exists(path + Session["UserName"].ToString()))

  {

  System.IO.Directory.CreateDirectory(path + Session["UserName"].ToString());

  }

  if (FileUpload1.HasFile)

  {

  FileUpload1.SaveAs(Server.MapPath("~/Seeker/Documents/" + Session["UserName"].ToString() + "/" + this.FileUpload1.FileName));

  }

  }

  }

  protected void Image_validate(object source, ServerValidateEventArgs args)

  {

  string fileExt = Path.GetExtension(FileUpload1.FileName).ToLower();

  string fileName = Path.GetFileName(FileUpload1.FileName);

  if (fileExt != ".jpg" && fileExt != ".gif")

  {

  args.IsValid = false;

  }

  }

  protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)

  {

  Bitmap bmIP = new Bitmap(FileUpload1.PostedFile.InputStream);

  if (bmIP.Width > 100 | bmIP.Height > 100)

  {

  args.IsValid = false;

  }

  else

  {

  args.IsValid = true;

  }

  }

  }

  The default size of files uploaded by the FileUpload control is 4MB. This solution was found from the Internet。

  值得注意的是,FileUpload 默认上传文件最大为4MB。这是在网上找到的。

  如果要增加,则可以在Machine.config里面进行修改

  

复制代码 代码如下:

  <httpRuntime

  executionTimeout = "110" [in Seconds][number

  maxRequestLength = "4096" [number]

  requestLengthDiskThreshold = "80" [number]

  useFullyQualifiedRedirectUrl = "false" [true|false]

  minFreeThreads = "8" [number]

  minLocalRequestFreeThreads = "4" [number]

  appRequestQueueLimit = "5000" [number]

  enableKernelOutputCache = "true" [true|false]

  enableVersionHeader = "true" [true|false]

  apartmentThreading = "false" [true|false]

  requireRootedSaveAsPath = "true" [true|false]

  enable = "true" [true|false]

  sendCacheControlHeader = "true" [true|false]

  shutdownTimeout = "90" [in Seconds][number]

  delayNotificationTimeout = "5" [in Seconds][number]

  waitChangeNotification = "0" [number]

  maxWaitChangeNotification = "0" [number]

  enableHeaderChecking = "true" [true|false]

  />