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.