Asp.NET cung cấp một điều khiển phía server gọi là FileUpload để cho phép lựa chọn file cần upload.
Khi xử lý ở phía server, thông tin về file được upload lên sẽ được truy xuất thông qua điều khiển này (hoặc qua đối tượng Request ).
Trong khuôn khổ bài viết này, tôi sẽ hướng dẫn cách tạo 1 trang upload cơ bản cho phép lựa chọn và upload file để minh họa về điều khiển FileUpload đã nói ở trên.
Bước 1: Tạo một điều khiển FileUpload và 1 Button Upload vào trang *.aspx
<asp:FileUpload ID="FileUpload1" runat="server" Width="217px" />
<asp:Button ID="btnUpload" runat="server" onclick="btnUpload_Click" Text="Upload" />
Bước 2: Hãy đảm bảo là trong website có 1 thư mục có thể ghi được:
Trong ví dụ này tôi dùng thư mục App_data của website ASP.NET. Khi đưa lên server, hãy liên hệ với người quản trị để họ cấp quyền ghi cho thư mục bạn muốn dùng.
Bước 3: Xử lý sự kiện Click cho btnUpload
using System;
using System.Web;
public partial class Uploader : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
try
{
string sFolderPath = Server.MapPath(@"App_data");
HttpPostedFile myFile = FileUpload1.PostedFile;
string sFileName = myFile.FileName;
myFile.SaveAs(
string.Format(@"{0}\{1}", sFolderPath, sFileName));
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
}
Chú ý:
- Vì lí do an ninh, cần qui định loại file được upload lên server.(Có thể dùng Validator để kiểm tra tên file, ngoài ra có thể kiểm tra header của file ở phía server)
- Để tăng dung lượng được phép cho file được upload, ta cần chỉ định thông số
<httpRuntime maxRequestLength="số bytes dung lượng"/>
trong <system.Web>...</system.Web> của web.config
Tham khảo:
- Uploading Files in ASP.NET 2.0
- How to: Upload Files with the FileUpload Web Server Control