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>