What is the best practice for managing file uploads and folder creation in PHP applications?

When managing file uploads in PHP applications, it is important to properly handle file uploads and create folders to store the uploaded files securely. One best practice is to create a unique folder for each user or session to prevent file conflicts and improve organization. Additionally, it is crucial to validate file types, size, and ensure proper permissions are set on the uploaded files and folders.

// Create a unique folder for each user/session to store uploaded files
$uploadFolder = 'uploads/' . $_SESSION['user_id'] . '/';
if (!file_exists($uploadFolder)) {
    mkdir($uploadFolder, 0777, true);
}

// Handle file upload
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $fileName = $_FILES['file']['name'];
    $fileTmp = $_FILES['file']['tmp_name'];
    move_uploaded_file($fileTmp, $uploadFolder . $fileName);
    echo 'File uploaded successfully!';
} else {
    echo 'Error uploading file.';
}