What are some best practices for handling file uploads and storage in PHP?

When handling file uploads in PHP, it is important to validate the file type, size, and ensure secure storage to prevent any security vulnerabilities. One best practice is to use PHP's built-in functions like `move_uploaded_file()` to move the uploaded file to a secure directory on the server.

// Ensure file upload is valid
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
    $uploadDir = 'uploads/';
    $uploadFile = $uploadDir . basename($_FILES['file']['name']);

    // Validate file type
    $fileType = pathinfo($uploadFile, PATHINFO_EXTENSION);
    if ($fileType === 'jpg' || $fileType === 'png') {
        // Move uploaded file to secure directory
        if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile)) {
            echo 'File uploaded successfully.';
        } else {
            echo 'Failed to upload file.';
        }
    } else {
        echo 'Invalid file type. Only JPG and PNG files are allowed.';
    }
} else {
    echo 'Error uploading file.';
}