Welche Best Practices sollten beim Speichern von Bildern in PHP beachtet werden, um Fehler zu vermeiden?

Beim Speichern von Bildern in PHP sollten Best Practices wie Validierung der Dateiendung, Überprüfung der Dateigröße, Umbenennen der Datei, und Speichern in einem sicheren Verzeichnis beachtet werden, um Fehler und Sicherheitsrisiken zu vermeiden.

// Beispiel für das Speichern eines Bildes in PHP unter Berücksichtigung der Best Practices
if(isset($_FILES['image'])){
    $file_name = $_FILES['image']['name'];
    $file_size = $_FILES['image']['size'];
    $file_tmp = $_FILES['image']['tmp_name'];
    
    // Validierung der Dateiendung
    $file_ext = strtolower(end(explode('.', $file_name)));
    $allowed_extensions = array('jpg', 'jpeg', 'png');
    if(!in_array($file_ext, $allowed_extensions)){
        die("Ungültige Dateiendung. Nur JPG, JPEG und PNG Dateien sind erlaubt.");
    }
    
    // Überprüfung der Dateigröße
    if($file_size > 2097152){
        die("Dateigröße überschreitet das Limit von 2MB.");
    }
    
    // Umbenennen der Datei
    $new_file_name = uniqid('', true) . '.' . $file_ext;
    
    // Speichern in einem sicheren Verzeichnis
    $upload_path = 'uploads/' . $new_file_name;
    move_uploaded_file($file_tmp, $upload_path);
    
    echo "Bild erfolgreich hochgeladen.";
}