Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn die von PHP hochgeladene Datei nicht wirksam wird?
Lösung für das Problem, dass der PHP-Datei-Upload nicht wirksam wird: 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 Benutzer des PHP-Prozesseigentümers schreiben kann Der Wert von [max_execution_time] muss groß genug sein.
Lösung dafür, dass die PHP-Upload-Datei nicht funktioniert:
Szenario 1: Das temporäre Verzeichnis Der Ort, an dem die Dateien während des Datei-Uploads gespeichert werden, muss für den Benutzer des PHP-Prozesseigentümers geöffnet und beschreibbar sein. 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, während das Skript einen wichtigen Prozess ausführt, wie z. B. das Festlegen auf 90 Sekunden.
max_execution_time = 90
Beachten Sie, dass es in der PHP-Funktion auch eine set_time_limit-Funktion gibt, die den gleichen Effekt wie die obige Einstellung hat. Der Unterschied zwischen den beiden besteht darin, dass die obige Einstellung in der php.ini-Datei festgelegt ist, während set_time_limit ist in einer PHP-Datei geschrieben. Daher können Sie auch die maximale Ausführungszeit des Programms festlegen, indem Sie beispielsweise set_time_limit(0);
Fall 3: file_uploads = On verwenden Der Standardwert ist „Ein“, was bedeutet, dass das Hochladen von Dateien über HTTP möglich 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, was für PHP-Anfänger einfach ist Der Fehler besteht darin, beim Schreiben der Funktion zum Hochladen von Dateien die Größe der hochgeladenen Datei anzugeben, indem der Formularbereich auf die maximale Größe der hochgeladenen Datei festgelegt wird, dh auf den maximalen Wert der Datei, der hochgeladen werden darf, und auf den Wert von max_file_size ( 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
festlegen.upload_max_filesize = 20M
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. post_max_size
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
max_input_time
Fall 7: muss auch groß genug sein, um zu vermeiden, dass die Ausführung von Skripten viel verfügbaren 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“. memory_limit
Wenn Ihr Host außerdem ein Nginx-Betriebssystem ist und die oben genannten Vorgänge nicht funktionieren, denken Sie daran, client_max_body_size 20m;
hinzuzufügen Ein solcher Satz bedeutet, dass der maximal zulässige Upload 20 MB beträgt, was von Ihrer eigenen Situation abhängt. Der Speicherort meiner Nginx-Konfigurationsdatei ist .
/usr/local/nginx/conf/nginx.conf
Verwandte Lernempfehlungen:
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn die von PHP hochgeladene Datei nicht wirksam wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!