Ngôn ngữ ASP.NET - Điều khiển FileUpload

Điều khiển FileUpload của Web Forms

Điều khiển FileUpload cho phép người sử dụng Upload file từ chính ứng dụng Web của mình. File sau khi Upload có thể lưu trữ ở 1 nơi nào đó có thể là trên ổ cứng hay trong Database. Điều khiển FileUpload hỗ trợ các thuộc tính sau:

Để tạo điều khiển FileUpload có thể kéo thả từ toolbox hoặc viết code

Cú pháp tạo điều khiển FileUpload

< asp:FileUpload ID="FileUpload1" runat="server"/>  

Phía server xử lý code trên trả về cho trình duyệt dạng HTML:

<input name="FileUpload1" id="FileUpload1" type="file">  

Bảng thuộc tính

Thuộc tính Ý nghĩa
(ID) Qui định tên của điều khiển. Tên của điều khiển là duy nhất.
AccessKey Qui định ký tự để di chuyển nhanh đến điều khiển - ký tự xử lý phím nóng.
Attributes Tập hợp các thuộc tính của điều khiển HTML
BackColor Qui định màu nền của điều khiển.
BorderColor Qui định màu đường viền của điều khiển.
BorderStyle Qui định kiểu đường viền của điều khiển.
BorderWidth Qui định độ rộng của đường viền.
CssClass Qui định hình thức hiển thị của điều khiển qua tên CSS.
Enabled Qui định điều khiển có được hiển thị hay không. Giá trị mặc định của thuộc tính này là True – được phép hiển thị.
Font Qui định Font hiển thị cho điều khiển
ForeColor Qui định màu chữ hiển thị trên điều khiển
Height Qui định chiều cao của điều khiển
ToolTip Dòng chữ sẽ hiển thị khi rê chuột vào điều khiển.
Width Qui định độ rộng của điều khiển.
Enable Cho phép bạn vô hiệu hoá điều khiển FileUpload.
FileBytes Cho phép lấy nội dung file đã được upload như một mảng Byte.
FileContent Cho phép lấy nội dung của file đã được upload theo dòng dữ liệu
FileName Lấy tên file được Upload
HasFile Trả về giá trị đúng khi File được Upload

Điều khiển FileUpload hỗ trợ các phương thức

  • Focus: Enables you to shift the form focus to the FileUpload control.
  • SaveAs: Cho phép bạn lưu file được upload lên hệ thống.

Thuộc tính PostedFile của điều khiển FileUpload cho phép lấy thông tin từ File upload được bao bọc trong đối tượng HttpPostedFile. đối tượng này sẽ đưa thêm thông tin về Upload
file.
Lớp HttpPostedFile gồm các thuộc tính sau:

  • ContentLength: Lấy về kích thước của File Upload tính theo byte
  • ContentType: Lấy kiểu MIME của File Upload
  • FileName: Cho phép lấy tên của file được upload.
  • InputStream: Enables you to retrieve the uploaded file as a stream.

Lớp HttpPostedFile chỉ hỗ trợ phương thức

  • SaveAs: Cho phép bạn lưu file được upload lên hệ thống.

Window thuộc tính của điều khiển FileUpload

 Ví dụ: Trong ví dụ sau, chúng ta sẽ thực hiện Upload tập tin lên server, cụ thể hơn, tập tin vừa Upload sẽ được lưu trong thư mục Upload.

Trang FileUpload.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileUpload.aspx.cs" Inherits="FileUpload" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            width: 175px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <table style="width:100%;">
            <tr>
                <td class="auto-style1">Chọn tập tin:</td>
                <td>
                    <asp:FileUpload ID="FileUpload1" runat="server" />
                </td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td>
                    <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload" Width="83px" />
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <asp:Label ID="lblNotice" runat="server" Text="Label"></asp:Label>
                </td>
            </tr>
        </table>
    
    </div>
    </form>
</body>
</html>

Code behind

FileUpload.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class FileUpload : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        string sTenfile;
        //Tách lấy tên tập tin
        sTenfile = FileUpload1.FileName;
        //Thực hiện chép tập tin lên thư mục Upload
        FileUpload1.SaveAs(MapPath("~/images/" + sTenfile));
        lblNotice.Text = "Đã upload thành công";

    }
}

Thực thi trang web 

Click nút upload nếu thành công ra kết quả