Kontakt aufnehmen

Upload-Überprüfung (CMS)

Beim Dateiupload können viele Probleme auftreten. So kann es zum Beispiel sein, dass die Dateigröße die max. zugelassene Größe überschreitet. Das wird in unserem CMS zur Zeit noch nicht geprüft, was sich heute ändert!

Das Geheimnis der Überprüfung befindet sich in den $_FILEs. Dort gibt es eine Eigenschaft namens error. Sie sagt, ob etwas und was falsch gelaufen ist. Das ganze geht über die folgenden Error-Codes:

0 Alles erfolgreich
1 Max. zugelassene Dateigröße (php.ini) überschritten
2 Max. Bildgröße überschritten
3 Datei wurde nur teilweise hochgeladen
4 Es wurde keine Datei hochgeladen

Die Überprüfung erfolgt bei uns in der neuen Funktion checkUploadFile der Klasse FileServer:

/system/classes/fileserver.phpPHP
protected function checkUploadFile($file){
  $res = true;
  self::$uploadFailure = "";

  switch($file['error']){
    case 0:
      break;
    case 1:
      $res = false;
      self::$uploadFailure = str_replace("{VAR:MAX_FILESIZE}",
           ini_get('upload_max_filesize'),
           $GLOBALS['language']->getString("UPlOAD_FAILED_SIZE"));
      break;
    case 2:
      $res = false;
      self::$uploadFailure = str_replace("{VAR:MAX_FILESIZE}",
           IMAGE_MAX_IMAGE_SIZE,
           $GLOBALS['language']->getString("UPlOAD_FAILED_IMAGE_SIZE");
      break;
    case 3:
      $res = false;
      self::$uploadFailure =
           $GLOBALS['language']->getString("UPlOAD_FAILED_PARTIALLY");
    case 4:
      $res = false;
      self::$uploadFailure =
           $GLOBALS['language']->getString("UPlOAD_FAILED_NONE");
  }

  return $res;
}

Aufgerufen wird die Funktion in der upload-Funktion, auch vom FileServer:

/system/classes/fileserver.phpPHP
    function upload($base,$file){
      $res = false;
      if(self::checkUploadFile($file)){
        $tempname = $file['tmp_name'];
        $name = $file['name'];
        $res = copy($tempname, $base."/".$name);
        $args['name'] = $base."/".$name;
        if($res) EventManager::raiseEvent("file_uploaded","../",$args);
      }
      return $res;
    }

Zu guter letzt musste ich in den Sprachdatenbanken noch die jeweiligen Fehlernachrichten eintragen und diese im Uploader ausgeben. Alle Details stehen in r94.

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern