a、sp.net文件上傳示例

發布時間:2017-08-03 14:11 來源:互聯網 當前欄目:web技術類

 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("上傳
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、