Gespräch vereinbaren
Werbung
FeatValue
Das Kundenportal für Agenturen und Freelancer
Integriert sich in das bestehende Projektmagement-System
Kostenlos registrieren

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 meine Software FeatValue.

Über mich

Stefan Wienströer

Ich entwickle Webanwendungen mit viel Leidenschaft. Mein Wissen gebe ich dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

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

Auswahl speichern