Dieser Artikel enthält eine detaillierte Analyse des Codes und der Problemlösungen für das Hochladen einzelner Dateien und mehrerer Dateien in PHP. Bitte lesen Sie ihn gemeinsam durch.
Wann ist $_FILES ein leeres Array?
Wenn der Enctype der Formularübermittlung nicht mit multipart/form-data in der php.ini-Konfigurationsdatei übereinstimmt, ist file_uploads = Aus und die Größe der hochgeladenen Datei > die in der php.ini konfigurierte maximale Upload-Größe Konfigurationsdatei
Solange $_FILES ein leeres Array ist, können die oben genannten Probleme auftreten und müssen behoben werden!
Wenn Sie sofort auf die Schaltfläche „Hochladen“ klicken, ohne eine Datei auszuwählen, ist $_FILES ein Array mit Elementen. Jedes Attribut im Element ist eine leere Zeichenfolge und das Fehlerattribut ist 4
Einzeldatei-Upload
$_FILES-Datenstruktur
array( 'filename' => array( 'name' => 'xxx.png', 'type' => 'image/png', 'size' => 2548863, 'tmp_name' => '/img/sdsdsd.png', 'error' => 0 ) )
Ob es ist单文件
Oder 多文件上传
, es gibt 5 feste Attribute: Name / Größe / Typ / tmp_name / Fehler
Mehrere Datei-Uploads
Phase Im Vergleich zum Hochladen einzelner Dateien ist die Verarbeitung mehrerer Dateien viel komplizierter. Die beiden Formen des Hochladens mehrerer Dateien im Frontend
//name相同 <form method="post" enctype="multipart/form-data"> <input type="file" name="wt[]"/> <input type="file" name="wt[]"/> <input type="submit" value="提交"/> </form> //name不同(简单点) <form method="post" enctype="multipart/form-data"> <input type="file" name="wt"/> <input type="file" name="mmt"/> <input type="submit" value="提交"/> </form>
Die entsprechende Datenstruktur des Backends $_FILES
ist unterschiedlich
//name相同 array (size=1) 'wt' => array (size=5) 'name' => array (size=2) 0 => string '新建文本文档 (2).txt' (length=26) 1 => string '新建文本文档.txt' (length=22) 'type' => array (size=2) 0 => string 'text/plain' (length=10) 1 => string 'text/plain' (length=10) 'tmp_name' => array (size=2) 0 => string 'C:\Windows\php1D64.tmp' (length=22) 1 => string 'C:\Windows\php1D65.tmp' (length=22) 'error' => array (size=2) 0 => int 0 1 => int 0 'size' => array (size=2) 0 => int 0 1 => int 1820 //name不同(简单点) array (size=2) 'wt' => array (size=5) 'name' => string '新建文本文档 (2).txt' (length=26) 'type' => string 'text/plain' (length=10) 'tmp_name' => string 'C:\Windows\php39C7.tmp' (length=22) 'error' => int 0 'size' => int 0 'mmt' => array (size=5) 'name' => string '新建文本文档.txt' (length=22) 'type' => string 'text/plain' (length=10) 'tmp_name' => string 'C:\Windows\php39D8.tmp' (length=22) 'error' => int 0 'size' => int 1820
Feld Fehlerzweck
Wert: 1 Die hochgeladene Datei überschreitet die Größe von php.ini. Der Wert der Option „upload_max_filesize“ ist begrenzt.
Wert: 2 Die Größe der hochgeladenen Datei überschreitet den durch die Option MAX_FILE_SIZE im HTML-Formular angegebenen Wert.
Wert: 3 Die Datei wurde nur teilweise hochgeladen.
Wert: 4 Es wurden keine Dateien hochgeladen. Wert: 5 Die hochgeladene Dateigröße beträgt 0.
Prinzipielle Analyse der PHP-Multiplayer-Modulentwicklung
Erklärung der Verwendung von XHProf zum Auffinden von PHP-Leistungsengpässen
Zugehörige Zusammenfassung der benutzerdefinierten Vorlagendirektiven im Laravel-Framework
Das obige ist der detaillierte Inhalt vonBeispiele für PHP-Uploads einzelner Dateien und mehrerer Dateien erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!