Upload file trong PHP

Hướng dẫn Upload file trong PHP sử dụng thuộc tính enctype="multipart/form-data" và phương thức POST.

Để upload file lên Server thì ta phải sử dụng form có thuộc tính enctype="multipart/form-data" và phương thức POST, thẻ input sẽ có type="file".

Khi bạn upload một file lên thì trên Server sẽ nhận được 5 thông số cho một file, và PHP sẽ dựa vào các thông số đó để tiến hành upload, các thông số đó là:

  • name: Tên của file bạn upload
  • type: Kiểu file mà bạn upload (hình ảnh, word, …)
  • tmp_name: Đường dẫn đến file upload ở client
  • error: Trạng thái của file bạn upload, 0 => không có lỗi
  • size: Kích thước của file bạn upload

VD

Bước 1: Tạo file Uploade.php

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form method="post" action="" enctype="multipart/form-data">
            <input type="file" name="avatar"/>
            <input type="submit" name="uploadclick" value="Upload"/>
        </form>
        <?php
            // Xử Lý Upload
            var_dump($_FILES);
        ?>
    </body>
</html>

* lưu ý rằng để upload file được thì form phải có thuộc tính enctype=”multipart/form-data” . Thuộc tính enctype=”multipart/form-data” ở trong thẻ <form mục đích của thuộc tính này để trình duyệt có thể hiểu và mã hóa dữ liệu thành nhiều phần.

* Thẻ input có thuộc tính type = file để hiển thị một giao diện có nút chọn tập tin ở máy tính của người dùng

 

Thông thường các file bạn upload lên sẽ được lưu trữ trong một biến global tên là $_FILES, nên đoạn  code ( var_dump($_FILES); ) để hiển thị 5 thông số trên khi thực hiện upload 1 file bất kỳ.

Bước 2: Xử lý:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
<body>
    <form method="post" action="" enctype="multipart/form-data">
        <input type="file" name="avatar"/>
        <input type="submit" name="uploadclick" value="Upload"/>
    </form>
    <?php // Xử Lý Upload
  
    // Nếu người dùng click Upload
    if (isset($_POST['uploadclick']))
    {
        // Nếu người dùng có chọn file để upload
        if (isset($_FILES['avatar']))
        {
            // Nếu file upload bị lỗi,
            // Tức là thuộc tính error > 0
            if ($_FILES['avatar']['error'] > 0)
            {
                echo 'File Upload Bị Lỗi';
            }
            else{
                // Upload file
                move_uploaded_file($_FILES['avatar']['tmp_name'], './folder/'.$_FILES['avatar']['name']);
                echo 'File Uploaded';
            }
        }
        else{
            echo 'Bạn chưa chọn file upload';
        }
    }
?>
</body>
</html>

 

0