Với PHP, thật dễ dàng để tải các tệp lên máy chủ.
Tuy nhiên, một cách dễ dàng đến nguy hiểm, vì vậy hãy luôn cẩn thận khi cho phép tải lên tệp!
Định cấu hình tệp "php.ini"
Đầu tiên, đảm bảo rằng PHP được cấu hình để cho phép tải lên tệp.
Trong tệp "php.ini" của bạn, tìm kiếm chỉ thị file_uploads
và đặt nó thành BẬT:
Tạo biểu mẫu HTML
Tiếp theo, hãy tạo biểu mẫu HTML cho phép người dùng chọn tệp hình ảnh họ muốn tải lên:
& nbsp; & nbsp; chọn hình ảnh để tải lên: & nbsp; & nbsp; & nbsp;
Select image to upload:
& nbsp; & nbsp; chọn hình ảnh để tải lên: & nbsp; & nbsp; & nbsp;
- Một số quy tắc cần tuân theo biểu mẫu HTML ở trên:
- Đảm bảo rằng biểu mẫu sử dụng Phương thức = "Post"
Biểu mẫu cũng cần thuộc tính sau: Enctype = "Multipart/Form-Data". Nó chỉ định loại nội dung nào sẽ sử dụng khi gửi biểu mẫu
Không có các yêu cầu ở trên, tải lên tệp sẽ không hoạt động.
- Những điều khác cần chú ý:
Thuộc tính loại = "tệp" của thẻ hiển thị trường đầu vào dưới dạng điều khiển chọn tệp, với nút "Duyệt" bên cạnh điều khiển đầu vào
Biểu mẫu ở trên gửi dữ liệu đến một tệp có tên "Tải lên.php", mà chúng tôi sẽ tạo tiếp theo.
Tạo tập lệnh tải lên tệp php
Tệp "upload.php" chứa mã để tải lên tệp:
$target_dir = "uploads/";
$target_file = $target_dir . basename[$_FILES["fileToUpload"]["name"]];
$uploadOk = 1;
$imageFileType = strtolower[pathinfo[$target_file,PATHINFO_EXTENSION]];
// Check if image file is a actual image or fake image
if[isset[$_POST["submit"]]] {
$check = getimagesize[$_FILES["fileToUpload"]["tmp_name"]];
if[$check !== false] {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
PHP script explained:
- Tập lệnh PHP giải thích:
- $ target_dir = "Tải lên/" - Chỉ định thư mục nơi tệp sẽ được đặt
- $ target_file chỉ định đường dẫn của tệp sẽ được tải lên
- $ uploadok = 1 chưa được sử dụng [sẽ được sử dụng sau]
- $ ImageFileType giữ phần mở rộng tệp của tệp [trong trường hợp thấp hơn]
Tiếp theo, kiểm tra xem tệp hình ảnh có phải là hình ảnh thực hay hình ảnh giả không You will need to create a new directory called "uploads" in the directory where "upload.php" file resides. The uploaded files will be saved there.
Lưu ý: Bạn sẽ cần tạo một thư mục mới gọi là "Tải lên" trong thư mục trong đó tệp "tải lên.php" nằm. Các tập tin được tải lên sẽ được lưu ở đó.
Kiểm tra xem tệp đã tồn tại chưa
Bây giờ chúng ta có thể thêm một số hạn chế.
Đầu tiên, chúng tôi sẽ kiểm tra xem tệp đã tồn tại trong thư mục "Tải lên". Nếu có, một thông báo lỗi được hiển thị và $ uploadok được đặt thành 0:
if [file_exists[$target_file]] {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// kiểm tra xem tệp đã tồn tại [file_exists [$ target_file]] {& nbsp; echo "Xin lỗi, tập tin đã tồn tại."; & nbsp; $ uploadok = 0; }
Giới hạn kích thước tệp
Trường đầu vào tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "Filetoupload".
Bây giờ, chúng tôi muốn kiểm tra kích thước của tệp. Nếu tệp lớn hơn 500kb, một thông báo lỗi sẽ được hiển thị và $ uploadok được đặt thành 0:
if [$_FILES["fileToUpload"]["size"] > 500000] {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Kiểm tra tệp Sizeif [$ _files ["Filetoupload"] ["size"]> 500000] {& nbsp; echo "Xin lỗi, tập tin của bạn quá lớn."; & nbsp; $ uploadok = 0; }
Giới hạn loại tệp
Mã bên dưới chỉ cho phép người dùng tải lên các tệp JPG, JPEG, PNG và GIF. Tất cả các loại tệp khác đều cung cấp thông báo lỗi trước khi đặt $ tải lên 0:
if[$imageFileType != "jpg" && $imageFileType != "png" &&
$imageFileType != "jpeg"
&& $imageFileType != "gif" ] {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Cho phép một số định dạng tệp nhất định [$ ImageFileType! = "Jpg" && $ ImageFileType! , Các tệp jpeg, png & gif được cho phép. "; & Nbsp; & nbsp; $ uploadok = 0;}
Hoàn thành Tải lên Tập lệnh Php
Những điều khác cần chú ý:
Thuộc tính loại = "tệp" của thẻ hiển thị trường đầu vào dưới dạng điều khiển chọn tệp, với nút "Duyệt" bên cạnh điều khiển đầu vào