<input name="uploads[]" type=file multiple>
ASP.NET 3.5 的寫法,增加 multiple 屬性。
<asp:FileUpload ID="FileUpload1" runat="server" multiple="multiple" /> <asp:Button ID="btnUpload" Text="Upload" runat="server" OnClick="btnUpload_Click" />後端程式碼如下,檔案會存檔到網站根目錄下的 Uploads 資料夾:
protected void btnUpload_Click(object sender, EventArgs e) { for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFile postedFile = Request.Files[i]; if (postedFile.ContentLength > 0) { string fileName = Path.GetFileName(postedFile.FileName); postedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName); } } }
ASP.NET 4.5 後版本的 FileUpload 元件支援 AllowMultiple 屬性。
<asp:FileUpload ID="FileUpload1" runat="server" AllowMultiple="true" /> <asp:Button ID="btnUpload" Text="Upload" runat="server" OnClick="btnUpload_Click" />後端程式碼如下,PostedFiles 也是 .NET 4.5 開始才有的成員。
protected void btnUpload_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { foreach (var postedFile in FileUpload1.PostedFiles) { string fileName = Path.GetFileName(postedFile.FileName); postedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName); } } }判斷檔案型態:postedFile.ContentType == "image/jpeg"
判斷檔案大小:postedFile.ContentLength < 102400
參考資料:https://www.aspsnippets.com/Articles/Upload-multiple-files-with-ASPNet-45-FileUpload-control-in-Visual-Studio-2012-and-2013.aspx
發現上傳多檔, 會有不同檔名, 但內容均相同情形, 如何解.
回覆刪除