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
:
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:
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
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project