LÝ THUYẾT
XỬ LÝ FORM
BÀI TẬP
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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

Ở bài trước chúng ta đã tìm hiểu được khá nhiều hàm xử lý file nhưng tôi không đề cập đến hàm upload file bởi vì tôi muốn nó là một bài thực hành riêng dành cho các bạn. Và trong bài này mình sẽ hướng dẫn các bạn cách upload file bằng PHP bằng cách đơn giản và dễ hiểu nhất.

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".

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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

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 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.

2. Lời kết

Trong bài này tôi chỉ hướng dẫn các bạn upload file với php đơn giản và không có kiểm tra định dang file trước khi upload lên Server, vì vậy nếu bạn muốn kiểm tra định dạng file trước khi upload thì hãy sử dụng các thông số mà mình đề cập ở trên nhé. Bài này rất đơn giản nhưng tôi nghĩ các bạn cũng nên làm theo cho nhuần nhuyễn trước khi đi vào các bài sau. Bài tiếp theo chúng ta tìm hiểu các hàm kiểm tra dữ liệu trong php

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top