Bài 18: Upload file lên server với php

Ngày đăng: 2024-04-12 19:32:55

Mục lục:

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

           2. Ví dụ

 

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à:

  • 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

2. Ví dụ

Bước 1: Bạn tạo file upload.php trong thư mục WWW của Vertrigo 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>

        <?php

            // Xử Lý Upload

            var_dump($_FILES);

        ?>

    </body>

</html>

 

Bạn lưu ý rằng để upload file được thì form phải có thuộc tính enctype=”multipart/form-data” như trong code trên nhé.

Cũng giống như POST và GET, tất cả các file bạn upload lên sẽ được lưu trữ trong một biến cục bộ tên là $_FILES, nên trong đoạn code trên mình có var_dump($_FILES) để xem thông tin file mình upload lên. Bây giờ bạn chạy file này lên, chọn upload một file bất kỳ và nhấn vào button Upload, bạn sẽ thấy 5 thông tin mà tôi đề cập ở trên.

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>

 

Phần comment bên trong code tôi đã giải thích rõ cho các bạn rồi. 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). Nếu bạn muốn kiểm tra định dạng file trước khi upload thì có thể sử dụng thông số type để kiểm tra.

 

Về bài trước...

                                 Bài tiếp theo...

 

 


Tài liệu lập trình PHP

Bài viết trong cùng chuyên mục

Góc games giải trí



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Tower game

Plapy Bird (NH.Đông)

Vượt chướng ngại vật



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Comment

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!

Trả lời

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

Trả lời

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

Trả lời

 +   -:

Trả lời

 +   -:

Trả lời

12735