Hôm nay tôi muốn giới thiệu một đoạn code nhỏ nhưng khá hay, cho phép upload nhiều file trong Asp.net. Chức năng này cho phép người sử dụng lựa chọn nhiều file trước khi click Upload. Và trả về thông báo sau khi upload thành công ở mỗi file lựa chọn.
1. Chuẩn bị
– Ở đây chúng ta có sử dụng 1 jquery plugin multifle upload (các bạn có thể download ở file đính kèm cuối bài viết). Tạo một ví nhỏ với cấu trúc như sau.
2. Code html
– Trước tiên ta cần thêm 2 thư viện jquery vào
<script src="js/jquery.js"></script>
<script src="js/jquery.MultiFile.pack.js"></script>
– Sau đó kéo một FileUpload , Lable và một Button vào page *.aspx
<asp:FileUpload ID="file_upload" class="multi" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
<asp:Label ID="lblMessage" runat="server" />
3. Code Behind
– Chúng ta cần sử dụng thư viện
using System;
using System.Web;
using System.IO;
– Việc hiển thị file khi lựa chọn ở phía giao diện người dùng được jquery plugin thực hiện, để lưu các file đã lựa chọn upload và trả về thông báo ta cần đoạn code như dưới đây.
HttpFileCollection fileCollection = Request.Files;
for (int i = 0; i < fileCollection.Count; i++)
{
HttpPostedFile uploadfile = fileCollection[i];
string fileName = Path.GetFileName(uploadfile.FileName);
if (uploadfile.ContentLength > 0)
{
uploadfile.SaveAs(Server.MapPath("~/fileUpload/") + fileName);
lblMessage.Text += fileName + "Saved Successfully
";
}
}
– Ở đây các file được upload sẽ lưu vào folder fileUpload.
4. Kết luận
– Chức năng này khá hay và có thể tùy biến theo yêu cầu cụ thể của các bạn. Khi đưa vào dự án cụ thể có thể cần tối ưu code để lựa chọn những extension cho phép upload, dung lượng tối đa….
– Các bạn có thể download ví dụ ở file đính kèm tại đây: multifile-upload