Home

Dateiuploads mit PHP

Dienstag, 1. Mai 2007 | Autor: Pr0g

Das erste Uploadscript (Teil 2)

Im nächsten Schritt wird geprüft ob der Upload erfolgreich war, als Fehlercode also UPLOAD_ERR_OK übermittelt wurde. Ist dies der Fall, so wird versucht die Datei mittels move_uploaded_file() aus dem Quell- ins Zielverzeichnis zu verschieben Die Funktion überprüft automatisch ob es sich um eine per post hochgeladenen Datei handelt. Sollte dies nicht der Fall sein, oder ein Fehler beim Verschieben aufgetreten sein, so gibt die Funktion den Wert false zurück. Im Erfolgsfall dagegen den Wert true. Ist eine Datei mit dem selben Namen wie die Zieldatei schon in dem Zielverzeichnis vorhanden, so wird die existierende überschrieben!

  // Prüfen ob der Upload erfolgreich war
  
if ($_FILES['meine_datei']['error'] == UPLOAD_ERR_OK) {
    
// Versuchen die Datei aus dem Quell- ins Zielverzeichnis zu verschieben
    
if (move_uploaded_file($source_file$target_file)) {
      
// Erfolgsmeldung ausgeben
      
echo 'Datei erfolgreich hochgeladen!';
    } else {
      
// Fehlermeldung ausgeben
      
echo 'Beim Verschieben der Datei trat ein Fehler auf!';
    }
  } else {

Wurde in $_FILES ein anderer Fehlercode übermittelt, so wird dieser im else Zweig ausgewertet und eine entsprechende Meldung ausgegeben:

    // Fehler ermitteln
    
$error '';
    switch (
$_FILES['meine_datei']['error']) {
      case 
UPLOAD_ERR_INI_SIZE:
        
$error 'Die hochgeladenen Datei überschreitet das in der php.ini gesetzte Maximum!';
        break;
      case 
UPLOAD_ERR_FORM_SIZE:
        
$error 'Die hochgeladenen Datei überschreitet die in MAX_FILE_SIZE gesetzte Größe!';
        break;
      case 
UPLOAD_ERR_PARTIAL:
        
$error 'Die hochgeladene Datei wurde nur teilweise übertragen!';
        break;
      case 
UPLOAD_ERR_NO_FILE:
        
$error 'Es wurde keine Datei hochgeladen!';
    }

    
// Fehlermeldung ausgeben
    
echo 'Fehler beim Hochladen: <b>' $error '</b>';
  }

In den Fehlermeldungen könnte man auch direkt die maximale Größe aus den PHP Einstellungen (wie oben erklärt) auslesen und ausgeben, oder den MAX_FILE_SIZE Wert aus dem $_POST Array entnehmen, da dies ein normales Feld ist, welches auch so behandelt werden kann.

Zu guter Letzt wird noch ein Link ausgegeben um nach dem Upload zum Formular zurückzukehren:

  // Zurück-Link anbieten um eine weitere Datei hochzuladen
  
echo '<br /><br /><a href="upload.php">Zurück</a>';
}

?>

Seiten: 1 2 3 4 5 6 7 8

Tags » , , «

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Artikel

Diesen Beitrag kommentieren.

Kommentar abgeben