Now you can Subscribe using RSS

Submit your Email

Thứ Tư, 9 tháng 5, 2018

PHP 5 File Upload

game4playfree
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, 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"

Trước tiên, hãy đảm bảo 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, tìm 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 form

Without the requirements above, the file upload will not work.

Other things to notice:

  • The type="file" attribute of the <input> 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:

<?php
$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ải thích:

$ 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 sử dụng (sẽ được sử dụng sau)
$ imageFileType giữ phần mở rộng 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ả

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" 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. Tất cả các loại tệp khác cung cấp thông báo 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 thành tập tin tải lên PHP Script

Tệp "upload.php" hoàn chỉnh bây giờ trông giống như sau:
<?php
$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 fileelse {
    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.";
    }
}
?>

game4playfree / Author & Editor

Has laoreet percipitur ad. Vide interesset in mei, no his legimus verterem. Et nostrum imperdiet appellantur usu, mnesarchum referrentur id vim.

0 blogger-facebook:

Đăng nhận xét

Coprights @ 2018, NIIT ICT Hà Nội Designed By Lil leeo - Đào Tạo Lập Trình Viên Quốc Tế