In what ways can a PHP developer optimize their code for file uploads to prevent common pitfalls and errors?
When handling file uploads in PHP, developers can optimize their code by setting appropriate file size limits, ensuring proper file type validation, and securing file storage directories. This helps prevent common pitfalls such as exceeding server limits, accepting malicious file uploads, and exposing sensitive data.
// Set maximum file size limit to 5MB
ini_set('upload_max_filesize', '5M');
// Validate file type before processing upload
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['file']['type'], $allowedTypes)) {
die('Invalid file type. Only JPEG, PNG, and GIF files are allowed.');
}
// Secure file storage directory
$uploadDir = 'uploads/';
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0755, true);
}
// Move uploaded file to secure directory
$uploadFile = $uploadDir . basename($_FILES['file']['name']);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
echo 'File uploaded successfully.';
} else {
echo 'File upload failed.';
}