What are the best practices for handling file uploads in PHP scripts to ensure successful uploads of large files?

When handling file uploads in PHP scripts, it is important to increase the upload_max_filesize and post_max_size values in php.ini to accommodate large file uploads. Additionally, setting the max_execution_time value to a higher value can prevent timeouts during the upload process. Using proper error handling and validation techniques can also help ensure successful uploads of large files.

// Increase upload_max_filesize, post_max_size, and max_execution_time values in php.ini
ini_set('upload_max_filesize', '20M');
ini_set('post_max_size', '25M');
ini_set('max_execution_time', 300);

// Handle file upload
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $uploadDir = 'uploads/';
    $uploadFile = $uploadDir . basename($_FILES['file']['name']);
    
    if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
        echo 'File uploaded successfully.';
    } else {
        echo 'Failed to upload file.';
    }
} else {
    echo 'Error uploading file.';
}