Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist die Lösung für den Fehler beim Hochladen von PHP-Dateien?

Was ist die Lösung für den Fehler beim Hochladen von PHP-Dateien?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-09-28 16:06:364695Durchsuche

Was ist die Lösung für den Fehler beim Hochladen von PHP-Dateien?

Warum schlägt das Hochladen großer Dateien immer fehl, beim Hochladen kleiner Dateien gibt es jedoch kein Problem. Die Gründe und Lösungen für das Scheitern des Hochladens großer PHP-Dateien sind wie folgt:

Fall 1: Das temporäre Verzeichnis, in dem die Datei beim Hochladen der Datei gespeichert wird, muss geöffnet und ein Verzeichnis sein, in das der PHP-Prozesseigentümer schreiben kann Benutzer. Wenn nicht angegeben, verwendet PHP den Systemstandard.

Das upload_tmp_dir in der php.ini-Datei wird verwendet, um das temporäre Verzeichnis zu beschreiben, in dem von PHP hochgeladene Dateien abgelegt werden. Wenn Sie Dateien hochladen möchten, müssen Sie sicherstellen, dass der Server die temporäre Datei nicht geschlossen hat Schreibberechtigung für den Ordner.

Fall 2: Der Wert von max_execution_time muss groß genug sein. Die Variable max_execution_time legt die in Sekunden gemessene Zeit fest, die PHP auf den Abschluss des Skripts wartet, bevor es zwangsweise beendet wird. Diese Variable ist nützlich, wenn das Skript in eine Endlosschleife eintritt. Diese Funktion kann jedoch auch dazu führen, dass der Vorgang fehlschlägt, wenn eine legitime Aktivität vorliegt, deren Abschluss lange dauert (z. B. das Hochladen einer großen Datei). In solchen Fällen müssen Sie erwägen, den Wert dieser Variablen zu erhöhen, um zu verhindern, dass PHP das Skript herunterfährt, wenn das Skript einige wichtige Prozesse ausführt, z. B. auf 90 Sekunden, max_execution_time = 90.

Verwandte Empfehlungen: „php-Einführungs-Tutorial

Hinweis: Es gibt auch eine set_time_limit-Funktion in der PHP-Funktion, die den gleichen Effekt wie die obige Einstellung hat zwei Der Unterschied zwischen ihnen besteht darin, dass das Obige in der Datei php.ini festgelegt wird, während set_time_limit in die PHP-Datei geschrieben wird. Daher können Sie die maximale Ausführungszeit des Programms auch festlegen, indem Sie set_time_limit auf der Seite verwenden. Beispiel: unbegrenzte Zeit: set_time_limit(0);

Fall 3: file_uploads = On. Dies bedeutet, dass das Hochladen von HTTP-Dateien zulässig ist. Diese Option kann nicht auf AUS gesetzt werden.

Fall 4: upload_max_filesize = 2M legt die maximale Datei-Upload-Größe in der php.ini-Konfigurationsdatei fest. Ein Fehler, den PHP-Anfänger häufig machen, ist das Schreiben von Dateien. Sie legen den Formularbereich für die maximale Größe der hochgeladenen Datei fest, dh den maximalen Wert der Datei, der hochgeladen werden darf, und den Wert von max_file_size (Feld mit ausgeblendeten Werten), um die Größe der hochgeladenen Datei anzugeben. Im Allgemeinen können andere diesen Wert umgehen. Aus Sicherheitsgründen ist es daher am besten, die Option upload_max_filesize in der Konfigurationsdatei php.ini zu konfigurieren, um die Größe des Datei-Uploads festzulegen. Der Standardwert für upload_max_filesize = 2M, d. h. die Datei-Upload-Größe beträgt 2M. Wenn Sie Dateien mit mehr als 8 MB hochladen möchten, z. B. 20 MB, müssen Sie upload_max_filesize = 20 MB festlegen.

Fall 5: post_max_size Auch dieser Wert muss groß genug sein. Diese Variable ist auch eine Variable im Zusammenhang mit der Formularübermittlung. Sie begrenzt die maximale Datenmenge, die das PHP-Programm empfangen kann, wenn der Client ein Formular über die POST-Methode übermittelt. Im Allgemeinen kann dieser Wert etwas größer eingestellt werden als upload_max_filesize. Wenn Sie beispielsweise eine 20-MB-Datei hochladen möchten, kann dieser Wert auf 21 MB eingestellt werden.

Fall 6: max_input_time Diese Variable kann die Zeit des Datenempfangs über POST, GET und PUT in Sekunden begrenzen. Wenn die Anwendung in einer Umgebung mit einem langsamen Netzwerk ausgeführt wird, müssen Sie diesen Wert erhöhen, um die für den Datenempfang erforderliche Zeit zu verlängern. Legen Sie diesen Wert beispielsweise auf 90 Sekunden fest.

max_input_time = 90

Fall 7: „memory_limit“ muss ebenfalls groß genug sein. Um zu vermeiden, dass die Ausführung von Skripten eine große Menge an verfügbarem Systemspeicher beansprucht, ermöglicht PHP die Definition von Speichernutzungsgrenzen. Verwenden Sie die Variable „memory_limit“, um die maximale Speicherkapazität anzugeben, die ein einzelnes Skript verwenden kann. Der Wert der Variablen „memory_limit“ sollte entsprechend größer sein als der Wert von „post_max_size“.

Szenario 8: Wenn Ihr Host ein Nginx-Betriebssystem ist und die oben genannten Vorgänge fehlschlagen, denken Sie daran, client_max_body_size 20m in die Nginx-Konfigurationsdatei einzufügen. Dieser Satz bedeutet, dass der maximal zulässige Upload 20 MB beträgt auf Ihre eigene Situation. Der Speicherort meiner Nginx-Konfigurationsdatei ist /usr/local/nginx/conf/nginx.conf.

Das obige ist der detaillierte Inhalt vonWas ist die Lösung für den Fehler beim Hochladen von PHP-Dateien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn