Bài 19: Upload file lên server với PHP – Học lập trình PHP cơ bản

Đăng bởi: Admin | Lượt xem: 1824 | Chuyên mục: PHP

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

&lt!DOCTYPE html&gt
&lthtml&gt
    &lthead&gt
        &lttitle&gt&lt/title&gt
        &ltmeta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt
    &lt/head&gt
    &ltbody&gt
        &ltform method="post" action="" enctype="multipart/form-data"&gt
            &ltinput type="file" name="avatar"/&gt
            &ltinput type="submit" name="uploadclick" value="Upload"/&gt
        &lt/form&gt
    &lt/body&gt
&lt/html&gt

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:

&lt!DOCTYPE html&gt
&lthtml&gt
    &lthead&gt
        &lttitle&gt&lt/title&gt
        &ltmeta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt
    &lt/head&gt
&ltbody&gt
    &ltform method="post" action="" enctype="multipart/form-data"&gt
        &ltinput type="file" name="avatar"/&gt
        &ltinput type="submit" name="uploadclick" value="Upload"/&gt
    &lt/form&gt
    &lt?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 &gt 0
            if ($_FILES['avatar']['error'] &gt 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';
        }
    }
?&gt
&lt/body&gt
&lt/html&gt

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)