Upload File trong PHP
Một PHP script có thể sử dụng với một form HTML cho phép người dùng upload file lên Server. Đầu tiên các file này được upload lên một thư mục tạm thời, sau đó được di chuyển tới một đích bởi một PHP script.
Thông tin trong trang phpinfo.php mô tả thư mục tạm thời mà được sử dụng cho các file được upload ở dạng upload_tmp_dir và kích thước giới hạn của các file có thể được upload được bắt đầu ở dạng upload_max_filesize. Các tham số này được thiết lập trong file cấu hình php.ini.
Tiến trình upload một file theo các bước sau:
- Người dùng mở trang chứa một HTML form là một text file, một nút browse và một nút submit.
- Người dùng nhấn nút browse và chọn một file để upload từ máy local.
- Đường dẫn đầy đủ đến file được chọn sẽ xuất hiện trong trường văn bản, sau đó người dùng nhấn nút Submit.
- File được chọn được gửi đến thư mục tạm thời trên Server.
- PHP script, mà được xác định như một Form Handler (trình xử lý biểu mẫu) trong thuộc tính action của form, sẽ kiểm tra xem file đã đến chưa và sau đó sao chép file này sang thư mục mong muốn.
- PHP script xác nhận thành công tới người dùng.
Thông thường khi ghi các file, nó là cần thiết cho cả thư mục tạm thời và thư mục đích để có quyền truy cập được thiết lập là cho phép ghi. Nếu một trong 2 được thiết lập là read-only, thì tiến trình sẽ thất bại.
Một file được upload lên có thể là file text, file ảnh hoặc bất cứ tài liệu nào.
Tạo form upload trong PHP
Dưới đây là HTML code tạo một form upload. Form này có thuộc tính method được thiết lập là post và thuộc tính enctype thiết lập là multipart/form-data.
<?php if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size =$_FILES['image']['size']; $file_tmp =$_FILES['image']['tmp_name']; $file_type=$_FILES['image']['type']; $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); $expensions= array("jpeg","jpg","png"); if(in_array($file_ext,$expensions)=== false){ $errors[]="Định dạng không được hỗ trợ, hãy chọn ảnh JPEG hoặc PNG."; } if($file_size > 2097152){ $errors[]='File phải có dung lượng tối thiểu 2 MB'; } if(empty($errors)==true){ move_uploaded_file($file_tmp,"images/".$file_name); echo "Thành công!"; }else{ print_r($errors); } } ?> <html> <body> <form action="" method="POST" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit"/> </form> </body> </html>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Tạo upload script trong PHP
Có một biến PHP toàn cục là $_FILES. Biến này là một mảng mảng liên hợp và giữ tất cả thông tin liên quan đến file được tải lên. Vì vậy, nếu giá trị gán cho thuộc tính name của input trong form upload là file, khi đó PHP có thể tạo 5 biến sau:
- $_FILES['file']['tmp_name'] − File đã upload trong thư mục tạm thời trên Web Server.
- $_FILES['file']['name'] − Tên thực sự của file đã upload.
- $_FILES['file']['size'] − Kích thước tính theo byte của file đã upload.
- $_FILES['file']['type'] − Kiểu MIME của file đã upload.
- $_FILES['file']['error'] − Mã hóa lỗi liên quan đến file tải lên này.
Ví dụ
Dưới đây là ví dụ cho phép tải các hình ảnh và trả về kết quả ở dạng thông tin file đã được tải lên.
<?php if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size = $_FILES['image']['size']; $file_tmp = $_FILES['image']['tmp_name']; $file_type = $_FILES['image']['type']; $file_ext=strtolower(end(explode('.',$_FILES['image']['name']))); $expensions= array("jpeg","jpg","png"); if(in_array($file_ext,$expensions)=== false){ $errors[]="Định dạng không được hỗ trợ, hãy chọn ảnh JPEG hoặc PNG."; } if($file_size > 2097152) { $errors[]='File phải có dung lượng tối thiểu 2 MB'; } if(empty($errors)==true) { move_uploaded_file($file_tmp,"images/".$file_name); echo "Thành công!"; }else{ print_r($errors); } } ?> <html> <body> <form action = "" method = "POST" enctype = "multipart/form-data"> <input type = "file" name = "image" /> <input type = "submit"/> <ul> <li>Sent file: <?php echo $_FILES['image']['name']; ?> <li>File size: <?php echo $_FILES['image']['size']; ?> <li>File type: <?php echo $_FILES['image']['type'] ?> </ul> </form> </body> </html>
Theo tutorialspoint
Bài trước: Gửi Email sử dụng PHP
Bài tiếp: Chuẩn viết code trong PHP
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

- quangvu nguyenThích · Phản hồi · 0 · 13/03/23

Cũ vẫn chất
-
Cách tải video Youtube đơn giản, nhanh
Hôm qua 26 -
58 câu ca dao, tục ngữ, thành ngữ về cuộc sống ẩn chứa những bài học ý nghĩa
Hôm qua -
Cách tăng dung lượng ổ C trong Windows 11/10/8/7
Hôm qua 3 -
Bạn có biết ý nghĩa của những biểu tượng emoticon mà chúng ta hay dùng?
Hôm qua 1 -
Các màu trái tim trên Messenger có ý nghĩa gì?
Hôm qua 2 -
Cách mở tab ẩn danh trên Chrome, Cốc Cốc, Firefox,...
Hôm qua -
Mã lệnh GTA Vice City, cheat Grand Theft Auto: Vice City
Hôm qua 7 -
Câu nói hay về ăn uống, stt về ăn uống hay và hài hước
Hôm qua 1 -
Sửa nhanh lỗi "Không thể truy cập trang web này" (This site can't be reached) trên Chrome
Hôm qua 1 -
Cách xem mật khẩu đã lưu trên Chrome, xóa mật khẩu nhanh chóng
Hôm qua