Bỏ qua đến nội dung chính
Thứ 2 – Thứ 6: 8:00 – 17:30
Bài 19 / 28

Bài 19: Upload file lên server với PHP

Học lập trình PHP cơ bản 10/03/2022

1) Upload lên Server bằng code PHP

Để upload file lên Server thì ban 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à:
  1. name: Tên của file bạn upload
  2. type: Kiểu file mà bạn upload (hình ảnh, word, …)
  3. tmp_name: Đường dẫn đến file upload ở client
  4. error: Trạng thái của file bạn upload, 0 => không có lỗi
  5. size: Kích thước của file bạn upload
Bây giờ ta sẽ làm một ví dụ upload file để bạn dễ hiểu hơn nhé.
Bước 1: Bạn tạo file upload.php trong thư mục htdocs của Xampp Server, sau đó copy nội dung này vào
<!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>
    </body>
</html>
Bước 2: Bạn tạo một folder upload cùng cấp với file upload.php, sau đó sửa lại file upload.php như sau:
<!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 không 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>
Riêng hàm move_uploaded_file($client_path, $server_path) sẽ có 2 tham số truyền vào, tham số $client_path là đường dẫn đến file ở client, tham số $server_path là đường dẫn các bạn muốn lưu trên Server (đường dẫn có kèm theo tên file)

Yêu cầu tư vấn

Để lại thông tin, Newnet sẽ liên hệ lại với bạn trong thời gian sớm nhất.