Trong lập trình PHP, Để cho phép người dùng tải lên tệp trong ứng dụng web của bạn, bạn cần sử dụng biểu mẫu HTML để tạo một giao diện tải lên và sau đó xử lý tệp tải lên trong mã PHP. Dưới đây là cách thực hiện quá trình tải lên tệp trong lập trình PHP:
Bước 1: Tạo biểu mẫu HTML để tải lên tệp
html
<!DOCTYPE html>
<html>
<head>
<title>File Upload</title>
</head>
<body>
<h1>Upload a File</h1>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
</body>
</html>
Bước 2: Xử lý tệp tải lên trong tệp upload.php
php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$targetDirectory = "uploads/"; // Thư mục lưu trữ tệp tải lên
$targetFile = $targetDirectory . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
// Kiểm tra xem tệp có phải là hình ảnh thật hay không
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;
}
}
// Kiểm tra kích thước tệp
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Cho phép các định dạng tệp được tải lên
if($fileType != "jpg" && $fileType != "png" && $fileType != "jpeg"
&& $fileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Kiểm tra xem $uploadOk có bị lỗi không
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $targetFile)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
?>
Trong ví dụ trên, biểu mẫu HTML cho phép người dùng chọn tệp để tải lên. Khi biểu mẫu được gửi đi, tệp tải lên sẽ được xử lý trong tệp upload.php
. Tệp này thực hiện các kiểm tra đối với tệp tải lên như kiểm tra kích thước, định dạng và xác minh xem tệp có phải là hình ảnh thật hay không. Nếu các kiểm tra đều thành công, tệp sẽ được lưu trong thư mục uploads/
.