What are best practices for creating folders and handling file uploads in PHP?
When handling file uploads in PHP, it is important to create a specific folder to store the uploaded files in order to keep them organized. It is recommended to create a unique folder for each user or each upload session to prevent conflicts. Additionally, it is crucial to validate file types and sizes to ensure security and prevent malicious uploads.
// Create a folder for storing uploaded files
$uploadFolder = 'uploads/';
if (!file_exists($uploadFolder)) {
mkdir($uploadFolder, 0777, true);
}
// Handle file upload
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
$fileName = $_FILES['file']['name'];
$fileSize = $_FILES['file']['size'];
$fileType = $_FILES['file']['type'];
// Validate file type and size
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
$maxFileSize = 1048576; // 1MB
if (in_array($fileType, $allowedTypes) && $fileSize <= $maxFileSize) {
move_uploaded_file($_FILES['file']['tmp_name'], $uploadFolder . $fileName);
echo 'File uploaded successfully.';
} else {
echo 'Invalid file type or size.';
}
} else {
echo 'Error uploading file.';
}