Với PHP, thật dễ dàng để tải các tệp lên máy chủ.
Tuy nhiên, dễ dàng gặp nguy hiểm, bởi 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"
trước nhất, hãy bảo đảm rằng trước khi học PHP được định cấu hình để cho phép tải lên tệp.
Trong tệp "php.ini" của bạn, kiếm chỉ thị file_uploads và đặt thành On:
file_uploads = On
Create The HTML Form
Next, create an HTML form that allow users to choose the image file they want to upload:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
Some rules to follow for the HTML form above:
- Make sure that the form uses method="post"
- The form also needs the following attribute: enctype="multipart/form-data". It specifies which content-type to use when submitting the for
Without the requirements above, the file upload will not work.
Other things to notice:
- The type="file" attribute of the tag shows the input field as a file-select control, with a "Browse" button next to the input control
The form above sends data to a file called "upload.php", which we will create next.
Tạo tập tin tải lên PHP Script
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 imageif(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;
?>
Tập lệnh PHP đã giảng giải:
$ target_dir = "uploads /" - chỉ định thư mục nơi tệp sẽ được đặt
$ target_file chỉ định đường dẫn của tệp được tải lên
$ uploadOk = 1 chưa được dùng (sẽ được sử dụng sau)
$ imageFileType giữ phần mở mang của tệp (trong trường hợp thấp hơn)
Tiếp theo, rà soát xem tệp hình ảnh có phải là hình ảnh thực hay hình ảnh giả
rà soát xem Tệp đã tồn tại chưa
hiện nay chúng ta có thể thêm một số hạn chế.
trước tiên, chúng tôi sẽ thẩm tra xem tệp đã tồn tại trong thư mục "tải lên" chưa. Nếu có, thông báo lỗi được hiển thị và $ uploadOk được đặt thành 0:
// Check if file already exists
if (file_exists($target_file))
echo "Sorry, file already exists.";
$uploadOk = 0;
Limit File Size
The file input field in our HTML form above is named "fileToUpload".
Now, we want to check the size of the file. If the file is larger than 500KB, an error message is displayed, and $uploadOk is set to 0:
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000)
echo "Sorry, your file is too large.";
$uploadOk = 0;
Loại tệp giới hạn
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. vớ các loại tệp khác cung cấp thông tin lỗi trước khi đặt $ uploadOk thành 0:
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" )
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
hoàn tất tập tin tải lên PHP Script
Tệp "upload.php" hoàn chỉnh bây chừ trông giống như sau:
$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 imageif(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;
// Check if file already existsif (file_exists($target_file))
echo "Sorry, file already exists.";
$uploadOk = 0;
// Check file sizeif ($_FILES["fileToUpload"]["size"] > 500000)
echo "Sorry, your file is too large.";
$uploadOk = 0;
// Allow certain file formatsif($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" )
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
// Check if $uploadOk is set to 0 by an errorif ($uploadOk == 0)
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file else
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
else
echo "Sorry, there was an error uploading your file.";
?>
No comments:
Post a Comment