34. upload file trong lập trình php

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/.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top