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.';
}