国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net fileupload控件上傳文件與多文件上傳

2024-07-10 13:28:34
字體:
供稿:網(wǎng)友

這篇文章主要介紹了asp.net fileupload控件上傳文件的方法,fileupload控件多文件上傳,以及fileupload上傳時實現(xiàn)文件驗證的方法,需要的朋友可以參考下

1、前臺文件 Default.aspx:

  1. <%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %> 
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml" > 
  4. <head runat="server"
  5. <title>asp.net fileupload控件上傳文件_m.survivalescaperooms.com</title> 
  6. </head> 
  7. <body> 
  8. <form id="form1" runat="server"
  9. <asp:FileUpload ID="FileUpload1" runat="server" /> 
  10. <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
  11. <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="FileUpload1" 
  12. ErrorMessage="必須是 jpg或者gif文件" ValidationExpression="^(([a-zA-Z]:)|(//{2}/W+)/$?)(//(/W[/W].*))+(.jpg|.Jpg|.gif|.Gif)$"></asp:RegularExpressionValidator> 
  13. </form> 
  14. </body> 
  15. </html> 


2、后端代碼 Default.aspx.cs:

  1. using System; 
  2. using System.Data; 
  3. using System.Configuration; 
  4. using System.Web; 
  5. using System.Web.Security; 
  6. using System.Web.UI; 
  7. using System.Web.UI.WebControls; 
  8. using System.Web.UI.WebControls.WebParts; 
  9. using System.Web.UI.HtmlControls; 
  10. public partial class _Default : System.Web.UI.Page  
  11. protected void Page_Load(object sender, EventArgs e) 
  12. protected void Button1_Click(object sender, EventArgs e) 
  13. String savePath = @"F:/111/"
  14. if (FileUpload1.HasFile) 
  15. String filename; 
  16. filename = FileUpload1.FileName; 
  17. savePath +=filename; 
  18. FileUpload1.SaveAs(savePath); 
  19. Page.Response.Write(FileUpload1.PostedFile.ContentType + FileUpload1.PostedFile.ContentLength+"<br>"); 
  20. Page.Response.Write("<img src='"+savePath+"'>"); 
  21. else 
  22. Page.Response.Write("fff"); 


去掉綠色部分就可上傳任何文件,它是用一個正則表達(dá)式來驗證上傳文件的類型

在ASP.NET 2.0中使用FileUpload服務(wù)器控件很容易的就能將文件上傳到服務(wù)器。

1、aspx文件代碼

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="fileupload.aspx.cs" Inherits="fileupload" %> 
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  3. <html xmlns="http://www.w3.org/1999/xhtml" > 
  4. <head runat="server"
  5. <title>FileUpload上傳文件示例-vevb.com</title> 
  6. </head> 
  7. <body> 
  8. <form id="form1" runat="server"
  9. <div> 
  10. <asp:FileUpload ID="FileUpload1" runat="server" /> 
  11. <asp:Button ID="Button1" runat="server" _disibledevent="Button1_Click" Text="上傳文件" /><br /> 
  12. <asp:Label ID="Label1" runat="server" Height="269px" Text="Label" Width="360px"></asp:Label></div> 
  13. </form> 
  14. </body> 
  15. </html> 


2、后端代碼 aspx.cs:

  1. protected void Button1_Click(object sender, EventArgs e) 
  2. if (FileUpload1.HasFile) 
  3. try 
  4. FileUpload1.SaveAs(Server.MapPath("upload") + "//" + FileUpload1.FileName); 
  5. Label1.Text = "客戶端路徑:" + FileUpload1.PostedFile.FileName + "<br>" + 
  6. "文件名:" + System.IO.Path.GetFileName(FileUpload1.FileName) + "<br>" + 
  7. "文件擴(kuò)展名:" + System.IO.Path.GetExtension(FileUpload1.FileName) + "<br>" + 
  8. "文件大小:" + FileUpload1.PostedFile.ContentLength + " KB<br>" +  
  9. "文件MIME類型:" + FileUpload1.PostedFile.ContentType + "<br>" + 
  10. "保存路徑:" + Server.MapPath("upload") + "//" + FileUpload1.FileName; 
  11. catch (Exception ex) 
  12. Label1.Text = "發(fā)生錯誤:" + ex.Message.ToString(); 
  13. else 
  14. Label1.Text = "沒有選擇要上傳的文件!"


1、asp.net fileupload多文件上傳的例子

使用fileupload實現(xiàn)多文件上傳,可以像傳單個文件那樣對每個文件單獨進(jìn)行處理,除此之外,還可以使用HttpFileCollection類捕獲從Request對象發(fā)送來的所有文件,然后再單獨對每個文件進(jìn)行處理。

后端代碼 aspx.cs:

  1. protected void Button1_Click(object sender, EventArgs e) 
  2. string filepath = Server.MapPath("upload") + "//"
  3. HttpFileCollection uploadFiles = Request.Files; 
  4. for (int i = 0; i < uploadFiles.Count; i++) 
  5. HttpPostedFile postedFile = uploadFiles[i]; 
  6. try 
  7. if (postedFile.ContentLength > 0) 
  8. Label1.Text += "文件 #" + (i + 1) + ":" + System.IO.Path.GetFileName(postedFile.FileName) + "<br/>"
  9. postedFile.SaveAs(filepath + System.IO.Path.GetFileName(postedFile.FileName)); 
  10. catch (Exception Ex) 
  11. Label1.Text += "發(fā)生錯誤: " + Ex.Message; 


2、上傳文件類型的驗證

對上傳文件類型的驗證既可以在客戶端進(jìn)行,也可以在服務(wù)器端進(jìn)行。

客戶端可以使用驗證控件來進(jìn)行,這里重點介紹如何在服務(wù)器端進(jìn)行驗證。

以上cs文件中已用GetExtension獲取了文件的擴(kuò)展名,只要稍加判斷即可實現(xiàn)上傳類型驗證:

aspx.cs:

  1. protected void Button1_Click(object sender, EventArgs e) 
  2. if (FileUpload1.HasFile) 
  3. fileExt = System.IO.Path.GetExtension(FileUpload1.FileName); 
  4. if (fileExt == ".rar" || fileExt == ".zip"
  5. try 
  6. FileUpload1.SaveAs(Server.MapPath("upload") + "//" + FileUpload1.FileName); 
  7. Label1.Text = "客戶端路徑:" + FileUpload1.PostedFile.FileName + "<br>" + 
  8. "文件名:" + System.IO.Path.GetFileName(FileUpload1.FileName) + "<br>" + 
  9. "文件擴(kuò)展名:" + System.IO.Path.GetExtension(FileUpload1.FileName) + "<br>" + 
  10. "文件大小:" + FileUpload1.PostedFile.ContentLength + " KB<br>" +  
  11. "文件MIME類型:" + FileUpload1.PostedFile.ContentType + "<br>" + 
  12. "保存路徑:" + Server.MapPath("upload") + "//" + FileUpload1.FileName; 
  13. catch (Exception ex) 
  14. Label1.Text = "發(fā)生錯誤:" + ex.Message.ToString(); 
  15. else 
  16. Label1.Text = "只允許上傳rar、zip文件!"
  17. else 
  18. Label1.Text = "沒有選擇要上傳的文件!"


注意,不能過分依賴于客戶端驗證控件和服務(wù)器端上述方法的驗證,因為用戶只需將文件擴(kuò)展名更改為允許的類型就可以避開上邊的驗證,這對用戶來說并不是件困難的事情。

3、解決文件大小限制

在ASP.NET 2.0中FileUpload默認(rèn)上傳文件最大為4M,不過可以在web.cofig中修改相關(guān)節(jié)點來更改這個默認(rèn)值,相關(guān)節(jié)點如下:

復(fù)制代碼代碼如下:

 

maxRequestLength表示可上傳文件的最大值,executionTimeout表示ASP.NET關(guān)閉前允許發(fā)生的上載秒數(shù)。

4、"multipart/form-data"和Request共存

在ASP程序中一旦使用表單上傳文件(form的enctype屬性值為multipart/form-data),服務(wù)器端就不能再用Request.Form來獲取表單的值,這種限制在ASP.NET 2.0中已不存在了:

aspx.cs:


 

  1. protected void Button1_Click(object sender, EventArgs e) 
  2. if (FileUpload1.HasFile) 
  3. try 
  4. FileUpload1.SaveAs(Server.MapPath("upload") + "//" + FileUpload1.FileName); 
  5. Label1.Text = "上傳文件:" + FileUpload1.FileName + "<br>" + 
  6. "說明:" + Request.Form["TextBox1"];//也可以用"TextBox1.Text"來獲取說明 
  7. catch (Exception ex) 
  8. Label1.Text = "發(fā)生錯誤:" + ex.Message.ToString(); 
  9. else 
  10. Label1.Text = "沒有選擇要上傳的文件!"
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵武市| 从江县| 兰州市| 凤台县| 河津市| 桂平市| 克东县| 遵义市| 晋中市| 绥阳县| 高雄县| 永州市| 阜新| 毕节市| 呼玛县| 洛川县| 衡东县| 普陀区| 古田县| 洱源县| 靖西县| 黄骅市| 长葛市| 綦江县| 临夏市| 临潭县| 维西| 任丘市| 增城市| 光山县| 贵港市| 乌拉特前旗| 大同市| 三穗县| 河源市| 文水县| 舞钢市| 公安县| 寿阳县| 金乡县| 冷水江市|