$ _FILES Array in PHP ist leer
-
06-07-2019 - |
Frage
Ich versuche, eine Datei über ein PHP-Skript hochgeladen zu bekommen, aber meine $ _FILES Array ist immer leer? My $ _POST Dateneingabe für das Datei HTML-Eingabeelement hat die Dateinamen ... Nur keine Datei auf meinem lokalen System erstellt wird.
Ich habe überprüft, Schreibzugriff auf den temporären Ordner und explicity setzen es. Ich habe überprüft phpinfo () sicher, dass das Hochladen von Dateien zu machen aktiviert sind, und sie sind.
Was werden verhindern könnte? mod_rewrite verursachen würde alles?
Danke!
Lösung
Wenn Sie die richtige enctype (<form method="post" enctype="multipart/form-data">
) haben, dann überprüfen Sie die Variable errno in $ _FILES, gibt es verschiedene mögliche Ursachen für einen Ausfall. Typisch ist MAX_FILE_SIZE überschritten wird.
http://php.net/manual/en/features. Datei-upload.errors.php
Seit PHP 4.2.0, PHP liefert ein entsprechender Fehlercode zusammen mit der Datei-Feld. Der Fehlercode kann in dem Fehler Segment der Datei gefunden Array, die während der Datei erzeugt wird Upload von PHP. Mit anderen Worten, die Fehler kann gefunden werden $ _FILES [ 'userfile'] [ 'error'].
UPLOAD_ERR_OK Wert: 0; Es gibt kein Fehler, die Datei mit Erfolg hochgeladen.
UPLOAD_ERR_INI_SIZE Wert: 1; Das Die hochgeladene Datei überschreitet die upload_max_filesize in php.ini.
UPLOAD_ERR_FORM_SIZE Wert: 2; Das Die hochgeladene Datei überschreitet die MAX_FILE_SIZE Richtlinie, die war in dem HTML-Formular angegeben.
etc.
Andere Tipps
definieren Sie die enctype in Ihrer Form?
<form method="post" enctype="multipart/form-data">
Es wird keine Datei hochgeladen werden, wenn Sie es nicht gesetzt.
Ist die Form das Recht enctype haben?
enctype="multipart/form-data"