Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn PHP keine großen Bilder hochladen kann?
Lösung für das Problem, dass PHP keine großen Bilder hochladen kann: 1. Öffnen Sie „post_max_size“ und stellen Sie es auf den gewünschten Wert ein. 4. Legen Sie ein gültiges Verzeichnis fest . Legen Sie die Berechtigung für die maximale Upload-Dateigröße fest.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Was soll ich tun, wenn PHP keine großen Bilder hochladen kann?
Die perfekte Lösung, wenn PHP keine großen Dateien hochladen kann
Die perfekte Lösung, wenn php.ini keine großen Dateien hochladen kann
1 Öffnen Sie php.ini (es versteht sich von selbst, wie man es öffnet, Baidu hat viele)
2. Finden Sie post_max_size
Der maximale Wert für die Formularübermittlung begrenzt nicht die Größe einer einzelnen hochgeladenen Datei, sondern begrenzt die Übermittlungsdaten des gesamten Formulars
Der Standardwert ist 8m, stellen Sie ihn auf den von Ihnen benötigten Wert ein Es wird empfohlen, diesen Parameter auf einen größeren Wert als „upload_max_filesize“ einzustellen.
3. Suchen Sie nach Datei-Uploads. Bestätigen Sie, ob das Hochladen von Dateien über den HTTP-Schalter zulässig ist Temporäre Dateien werden auf dem Server gespeichert. Wenn kein Fehler gemeldet wird, wird der Systemstandard „Temporäres Verzeichnis xxx“ verwendet Machen Sie sich darüber keine Sorgen
5. Finden Sie den maximalen Wert von upload_max_filesize
, der zum Hochladen von Dateien zulässig ist. Stellen Sie ihn auf den von Ihnen benötigten Wert ein. weil es durch den post_max_size-Wert gesteuert wird (selbst wenn upload_max_filesize auf 1g und post_max_size nur auf 2m eingestellt ist, werden Dateien, die größer als 2m sind, immer noch nicht hochgeladen, weil es durch den post_max_size-Wert gesteuert wird)
6 Wenn Sie Wenn Sie Dateien mit einer Größe von mehr als 8 m hochladen möchten, müssen Sie außerdem die folgenden Parameter festlegen:
Suchen Sie nach max_execution_time = 600; dem maximalen Zeitwert (Sekunden) für die Ausführung jeder PHP-Seite, standardmäßig 30 Sekunden.
max_input_time = 600; Das Maximum Die Zeit, die jede PHP-Seite zum Empfangen von Daten benötigt, beträgt standardmäßig 60 Sekunden . Client_body_buffer_size sollte aus Geschwindigkeitsgründen so groß wie möglich eingestellt werden. Wenn die hochgeladene Datei immer auf die Festplatte geschrieben werden muss, ist die Geschwindigkeit zu niedrig.
2.client_body_temp_path Der Pfad muss über Schreibberechtigungen verfügen. Dies ist ein offensichtlicher Fehler. Korrigieren Sie es einfach
3.client_max_body_size legt den Maximalwert für hochgeladene Dateien fest. Dies basiert auf Sicherheitsüberlegungen. Wir glauben, dass normale Benutzer keine zu großen Dateien hochladen werden.
Kann auf client_max_body_size 100m eingestellt werden oder diesen Wert entsprechend Ihrem eigenen Unternehmen festlegen.
Beispiel
nginx-Konfiguration.
Der Code lautet wie folgt:
cd /export/servers/nginx/conf/nginx.conf Im Serverabschnitt dieser Konfigurationsdatei wird das Feld client_max_body_size zum
location / { root html; index index.html index.htm; client_max_body_size 1000m; }
hinzugefügt, und es funktioniert nicht Egal wie Sie es neu starten. Später habe ich die Unterkonfigurationsdatei in der allgemeinen Konfigurationsdatei gefunden:
Der Code lautet wie folgt:
sendfileon; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; include domains/*; #include domains/chat.local; #include domains/chat.erp.com; #include domains/support.chat.com; #include douains/chat.com; server { listen 80; server_name localhost;
Also habe ich die Unterkonfigurationsdatei gefunden und sie in der Unterkonfigurationsdatei geändert. Die Konfiguration der Unterkonfigurationsdatei lautet wie folgt:
Der Code lautet wie folgt:
server { listen 80; server_name chat.erp.360buy.com; # access_log /export/servers/nginx/logs/chat.erp.360buy.com; location / { proxy_pass; client_max_body_size 1000m; } }
Starten Sie mit /export/servers/nginx/sbin/nginx -s reload neu, und das Problem der begrenzten Upload-Dateigröße ist gelöst.
Teilen Sie meinen Lösungsprozess mit, ich hoffe, er wird für alle hilfreich sein.
Wenn es immer noch nicht gelöst werden kann, müssen wir sehen, ob es ein Problem mit den PHP-Formulareinstellungen ist
Dieser Code ist in zwei Dateien unterteilt, eine ist upload.html und die andere ist upload.php
upload .html. Der Code lautet wie folgt: nicht wissen, was ich tun soll.
Es ist erwähnenswert, dass das versteckte Wertfeld der Formularoption max_file_size in der Datei upload.html die Größe der hochgeladenen Datei begrenzen kann, indem es seinen Wert festlegt. Der Wert „max_file_size“ ist nur ein Vorschlag für Browser, tatsächlich kann er leicht umgangen werden. Verlassen Sie sich also nicht auf diesen Wert, um Browsereinschränkungen einzuschränken. Tatsächlich ist die maximale Upload-Dateigröße in den PHP-Einstellungen nicht ungültig. Es ist jedoch besser, max_file_size in das Formular aufzunehmen, da dies dem Benutzer die Mühe erspart, lange auf das Hochladen einer großen Datei zu warten und dann festzustellen, dass die Datei zu groß ist.
upload.php
Der Code lautet wie folgt:
<form enctype=multipart/form-data action=upload.php method=post> <input type=hidden name=max_file_size value=100000> <input name=userfile type=file> <input type=submit value=上传文件> </form>
oder
$f=&$http_post_files['myfile']; $dest_dir=’uploads’;//设定上传目录 $dest=$dest_dir.’/’.date(ymd)._.$f['name'];//设置文件名为日期加上文件名避免重复 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//设定上传的文件的属性
Der Inhalt des $_files-Arrays im obigen Beispiel ist wie folgt. Wir gehen davon aus, dass der Name des Datei-Upload-Felds „userfile“ lautet (der Name kann beliebig benannt werden)
Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP keine großen Bilder hochladen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!