Heim > Artikel > Backend-Entwicklung > Warum ist das Array $_FILES leer, wenn PHP zum Verarbeiten von POST-Uploads verwendet wird?
Bei einem einfachen Formular-Upload-Test ist das Array $_FILES leer. Daher können die vom Browser hochgeladenen Informationen nicht abgerufen werden.
Gefunden über Google Das folgende Web:
Die Lösung für das leere $_FILES-Array von PHP-Upload-Dateien
Die während des Tests aufgetretene Situation ist die erste, die in beschrieben wird Der Artikel Ein Grund ist: Das Attribut enctype="multipart/form-data" ist im Formular zum Hochladen von Dateien nicht festgelegt
Der vollständige Text wird unten erneut veröffentlicht:
Lösung für das leere $_FILES-Array beim Hochladen von Dateien in PHP:
Bei Verwendung von PHP als Anwendung zum Hochladen von Dateien wird ein leeres Array gefunden, wenn $_FILES im Hintergrund gedruckt wird. Dieses Problem kann auftreten Die folgenden zwei Gründe:
Formulartypgründe oder PHP-Einstellungsprobleme:
1. Formulartyp:
Der Formularkodierungstyp der hochgeladenen Datei muss auf enctype="multipart/form-data" eingestellt sein, weil Big Data muss übertragen werden, und die allgemeine Übermittlungsmethode ist POST.
2. PHP-Einstellungsproblem:
Die Standardgröße von post_max_size ist 2M. Wenn die POST-Datengröße größer als post_max_size ist, sind die superglobalen Variablen $_POST und $_FILES leer.
1. Das Hochladen einer Datei kann im Allgemeinen mehr als eine Minute dauern, es sei denn, die Datei ist sehr klein Wenn beispielsweise 30 Sekunden überschritten werden, kann die Webseite nicht mehr geöffnet werden, und wir können in der Datei „max_execution_time“ nach „max_execution_time“ suchen 0 (der änderbare Bereich ist PHP_INI_ALL) 0 bedeutet keine Einschränkungen
Oder setzen Sie ini_set('max_execution_time',0) im PHP-Datei-Header;
2. Diese Einstellung wirkt sich auch auf Datei-Uploads aus. Finden Sie post_max_size = 150M (der veränderbare Bereich ist PHP_INI_PHP_INI_PERDIR)
3. Beim Hochladen von Dateien müssen wir jedoch auch einen Parameter ändern Geben Sie die maximale Größe der hochgeladenen Dateien an. Suchen Sie nach upload_max_filesize, der Standardwert ist 8 MB und ändern Sie ihn in upload_max_filesize = 100 MB (der veränderbare Bereich ist PHP_INI_PHP_INI_PERDIR).
Eine weitere zu beachtende Sache ist, dass post_max_size die Größe des gesamten Ausdrucks und upload_max_filesize die Größe der hochgeladenen Datei ist sollte größer sein als letzteres.