萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> asp.net 文件上傳實例匯總

asp.net 文件上傳實例匯總

 文件上傳在asp.net中有很多方法,這裡我很給各位介紹最簡單最方便的.net文件上傳實例,希望給各位.net入門者帶來幫助

ASP.NET依托.net framework類庫,封裝了大量的功能,使得上傳文件非常簡單,主要有以下三種基本方法。   方法一:用Web控件FileUpload,上傳到網站根目錄。   Test.aspx關鍵代碼:    代碼如下:      <form id="form1" runat="server">      <asp:FileUpload ID="FileUpload1" runat="server" />      <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />      <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>      </form>     Test.aspx.cs關鍵代碼:   代碼如下:      protected void Button1_Click(object sender, EventArgs e)      {          if (FileUpload1.HasFile)          {               FileUpload1.SaveAs(Server.MapPath("~/") + FileUpload1.FileName);               Label1.Text = "上傳成功!";          }      }     方法二:用Html控件HtmlInputFile,上傳到網站根目錄。   Test.aspx關鍵代碼: 代碼如下:      <form id="form1" runat="server">      <input type="file" id="file1" runat="server" />      <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />      <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>      </form>     Test.aspx.cs關鍵代碼:   代碼如下:      protected void Button1_Click(object sender, EventArgs e)      {          if (file1.PostedFile.ContentLength > 0)          {               file1.PostedFile.SaveAs(Server.MapPath("~/") + Path.GetFileName(file1.PostedFile.FileName));               Label1.Text = "上傳成功!";          }      }     方法三:用Html元素<input type="file" …/>,通過Request.Files上傳到網站根目錄。   Test.aspx關鍵代碼:   代碼如下:      <form id="form1" runat="server" enctype="multipart/form-data">      <input type="file" name="file" />      <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />      <asp:Label ID="Label1" runat="server" Text="" Style="color: Red"></asp:Label>      </form>     Test.aspx.cs關鍵代碼:    代碼如下:      protected void Button1_Click(object sender, EventArgs e)      {          if (Request.Files["file"].ContentLength > 0)          {               Request.Files["file"].SaveAs(Server.MapPath("~/") + Path.GetFileName(Request.Files["file"].FileName));               Label1.Text = "上傳成功!";          }      }   注意兩個區別:   一:FileUpload.FileName獲取客戶端上傳文件名(不帶路徑),而file1.PostedFile.FileName 和Request.Files["file"].FileName在不同浏覽器下情況不同:IE8下獲得的是客戶端上傳文件的完全限定名(帶路徑),谷歌、蘋果等浏覽器下則仍為文件名(不帶路徑)。   二:FileUpload控件有HasFile屬性,用於判斷用戶是否選擇了上傳文件,而後面兩種方法則需要通過判斷上傳文件大小ContentLength屬性,當用戶沒有選擇上傳文件時,該屬性值為0。   可以看出FileUpload封裝程度更高,但靈活性也稍差。   例,Asp.net 文件上傳類(取得文件後綴名,保存文件,加入文字水印)    代碼如下: 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;  using System.Drawing;  using System.IO;  using System.Drawing.Imaging;   namespace EC  {  /// <summary>  /// 上傳類  /// </summary>  public class UploadObj  {   public UploadObj()  {  //  // TODO: 在此處添加構造函數邏輯  //  }  /// <summary>  /// 允許文件上傳的類型枚舉  /// </summary>  public enum FileType  {  jpg,gif,bmp,png  }   #region 取得文件後綴  /// <summary>  /// 取得文件後綴  /// </summary>  /// <param name="filename">文件名稱</param>  /// <returns></returns>  public static string GetFileExtends(string filename)  {  string ext = null;  if (filename.IndexOf('.') > 0)  {  string[] fs = filename.Split('.');  ext = fs[fs.Length - 1];  }  return ext;  }  #endregion   #region 檢測文件是否合法  /// <summary>  /// 檢測上傳文件是否合法  /// </summary>  /// <param name="fileExtends">文件後綴名</param>  /// <returns></returns>  public static bool CheckFileExtends(string fileExtends)  {  bool status = false;  fileExtends = fileExtends.ToLower();  string[] fe = Enum.GetNames(typeof(FileType));  for (int i = 0; i < fe.Length; i++)  {  if (fe[i].ToLower() == fileExtends)  {  status = true;  break;  }  }  return status;  }  #endregion   #region 保存文件  /// <summary>  /// 保存文件  /// </summary>  /// <param name="fpath">全路徑,Server.MapPath()</param>  /// <param name="myFileUpload">上傳控件</param>  /// <returns></returns>  public static string PhotoSave(string fpath,FileUpload myFileUpload)  {  string s = "";  string fileExtends = "";  string fileName = myFileUpload.FileName;  if (fileName != "")  {  //取得文件後綴  fileExtends = EC.UploadObj.GetFileExtends(fileName);  if (!EC.UploadObj.CheckFileExtends(fileExtends))  {  EC.MessageObject.ShowPre("上傳文件類型不合法");  }  Random rd = new Random();  s = EC.RandomObject.DateRndName(rd) + "." + fileExtends;  string file = fpath + "" + s;  try  {  myFileUpload.SaveAs(file);  }  catch (Exception ee)  {  throw new Exception(ee.ToString());  }  }  return s;  }   #endregion   #region 加入文字水印   /// <summary>  /// 加入文字水印  /// </summary>  /// <param name="fileName">文件名稱路徑(全路徑)</param>  /// <param name="text">文件</param>  public void AddTextToImg(string fileName, string text)  {  if (!File.Exists(fileName))  {  throw new FileNotFoundException(
copyright © 萬盛學電腦網 all rights reserved