How to upload image and PDF file using PHP

Here is a PHP script that allows users to upload image and PDF files with a maximum size of 5 MB. The uploaded files will be renamed using the current timestamp:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["file"])) {
    $allowedExtensions = array("jpg", "jpeg", "png", "pdf");
    $maxFileSize = 5 * 1024 * 1024; // 5 MB in bytes

    $targetDirectory = "uploads/";
    $timestamp = time();
    $targetFileName = $timestamp . "_" . basename($_FILES["file"]["name"]);
    $targetPath = $targetDirectory . $targetFileName;
    
    $fileExtension = strtolower(pathinfo($targetFileName, PATHINFO_EXTENSION));

    if (in_array($fileExtension, $allowedExtensions) && $_FILES["file"]["size"] <= $maxFileSize) {
        if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetPath)) {
            echo "File uploaded successfully.";
        } else {
            echo "Error uploading file.";
        }
    } else {
        echo "Invalid file. Allowed file types: jpg, jpeg, png, pdf. Max file size: 5 MB.";
    }
}
?>

This is HTML form for file upload.

<!DOCTYPE html>
<html>
<head>
    <title>File Upload</title>
</head>
<body>
    <form method="POST" enctype="multipart/form-data">
        <input type="file" name="file" accept=".jpg, .jpeg, .png, .pdf" required>
        <button type="submit">Upload</button>
    </form>
</body>
</html>

Here’s what the script does:

  • It checks if the form has been submitted and if a file has been uploaded.
  • It sets the allowed file extensions ($allowedExtensions) and maximum file size ($maxFileSize).
  • It defines the target directory ($targetDirectory), generates a new
  • file name using the current timestamp, and constructs the target path.
  • It checks if the uploaded file has an allowed extension and if its size is within limits.
  • If the file meets the criteria, it moves the file to the target directory using move_uploaded_file() and echoes a success message.
  • If the file does not meet the criteria, it echoes an error message.
  • The HTML form allows users to select a file with the accept attribute specifying the allowed file types. After submitting the form, the PHP script processes the file upload.