Erläuterung der Konfigurationsoptionen für die Datei-Upload-Funktion in php.ini
Verwenden Sie ein Texttool (EditPlus empfohlen), um die php.ini-Konfigurationsdatei zu öffnen und nach Datei-Uploads zu suchen. Es gibt die folgenden 3 Optionen in diesem Bereich:
file_uploads = On
Ob HTTP-Datei-Uploads zugelassen werden sollen. Der Standardwert ist „Ein“, um das Hochladen von HTTP-Dateien zu ermöglichen. Diese Option kann nicht auf „Aus“ gesetzt werden.
upload_tmp_dir =
Temporäres Speicherverzeichnis für Datei-Uploads. Wenn nicht angegeben, verwendet PHP das standardmäßige temporäre Verzeichnis des Systems. Diese Option ist standardmäßig leer, wenn die PHP-Laufumgebung manuell konfiguriert wird. Wenn diese Option nicht konfiguriert ist, muss dieser Option ein Wert zugewiesen werden, z. B. upload_tmp_dir = ". d:/fileuploadtmp". Dies bedeutet, dass sich im Laufwerksverzeichnis D ein Verzeichnis fileuploadtmp befindet und diesem Verzeichnis Lese- und Schreibberechtigungen erteilt wurden.
upload_max_filesize = 2M
Maximale Größe der hochgeladenen Dateien. Der Standardwert dieser Option ist 2 MB, d. h. die Datei-Upload-Größe beträgt 2 MB. Wenn Sie eine 50 MB große Datei hochladen möchten, müssen Sie upload_max_filesize = 50 MB festlegen.
Aber allein durch das Festlegen von upload_max_filesize = 50M kann die Upload-Funktion großer Dateien immer noch nicht realisiert werden. Wir müssen auch die Option post_max_size in der Datei php.ini ändern.
Weiter nach Data Handling in php.ini suchen. In diesem Bereich gibt es 1 Option:
post_max_size = 8M
bezieht sich auf das, was PHP über das Formular POST Maximum empfangen kann Wert, einschließlich aller Werte im Formular. Der Standardwert ist 8M. Wenn die POST-Daten das Limit überschreiten, sind $_POST und $_FILES leer.
Um große Dateien hochzuladen, müssen Sie den Wert dieser Option auf einen größeren Wert als den Wert der Option upload_max_filesize festlegen. Wenn Sie beispielsweise upload_max_filesize = 50 MB festlegen, können Sie post_max_size = 100 MB festlegen.
Wenn außerdem die Speicherbegrenzung aktiviert ist, sollte der Wert kleiner sein als der Wert der Option „memory_limit“.
Suchen Sie weiterhin nach Ressourcenlimits in php.ini. In diesem Bereich gibt es drei Optionen:
max_execution_time = 30
Der maximale Zeitwert für die Ausführung jeder PHP-Seite (Einheit Sekunden), der Standardwert ist 30 Sekunden. Wenn wir eine größere Datei hochladen, beispielsweise eine 50-Megapixel-Datei, dauert die Ausführung wahrscheinlich mehrere Minuten. Die standardmäßige maximale Ausführungszeit der PHP-Seite beträgt jedoch 30 Sekunden. Wenn sie 30 Sekunden überschreitet, wird die Ausführung des Skripts gestoppt. Dies führt dazu, dass beim Öffnen einer Webseite nichts mehr möglich ist. Daher können wir den Wert größer einstellen, z. B. max_execution_time = 600. Wenn der Wert auf 0 gesetzt ist, bedeutet dies, dass es kein Zeitlimit gibt.
max_input_time = 60
Die Zeit (in Sekunden), die jedes PHP-Skript zum Parsen der Anforderungsdaten benötigt. Der Standardwert beträgt 60 Sekunden. Wenn wir große Dateien hochladen, können wir diesen Wert größer einstellen. Wenn der Wert auf 0 gesetzt ist, bedeutet dies, dass es kein Zeitlimit gibt.
memory_limit = 128M
Mit dieser Option wird der maximale Speicherplatz festgelegt, den ein einzelnes PHP-Skript beantragen kann. Dadurch wird verhindert, dass schlecht geschriebene Skripte den verfügbaren Speicher auf dem Server beanspruchen. Setzen Sie dies auf -1, wenn keine Speicherbeschränkungen erforderlich sind.
Die Standardversion von php5.2.0 ist 8M; die Standardversion von php.5.2.0 ist 16M. Versionen nach PHP 5.2.0 sind standardmäßig auf 128 MB eingestellt;
php.ini Beispiel zum Konfigurieren der Funktion „Datei hochladen“
Angenommen, Sie möchten eine große Datei mit 50 MB hochladen. Konfigurieren Sie php.ini wie folgt:
file_uploads = On
upload_tmp_dir = "d:/fileuploadtmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
Memory_Limit = 128 MB
Tipp: Sie müssen Memory_Limit >