Lösung für den Fehler, wenn PHP große Dateien herunterlädt: 1. Sehen Sie sich das Nginx-Protokoll auf dem Server an. 3. Bearbeiten Sie die Nginx-Konfiguration, um die Identität festzulegen. aichenk/soft/nginx/fastcgi_temp/“ ändern Sie einfach den Pfad.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.
Was soll ich tun, wenn beim Herunterladen großer PHP-Dateien ein Fehler auftritt?
Erinnern Sie sich an eine Falle, als PHP große Dateien nicht herunterladen konnte
Erklärung
php bietet Dateispeicherung und -downloads, Nginx dient als Webserver und fpm übernimmt die Analyse.
Phänomen
Beim Herunterladen eines 5M-Bildes wird immer angezeigt, dass der Download fehlgeschlagen ist oder die heruntergeladene Datei unvollständig ist und nur ein Teil des Bildes angezeigt wird (bei jedem Download unterschiedlich)
php-Download-bezogener Code
$file = BASE_PATH . '/public/files/IMG_5727.jpg'; $size = filesize($file); header( "Content-type: application/octet-stream" ); header("Accept-Ranges: bytes"); header("Accept-Length: {$size}"); header("Content-Disposition: attachment; filename=IMG_5727.jpg"); $fp = fopen($file, 'rb'); $readBuffer = 4096; while (!feof($fp)) { echo fread($fp, $readBuffer); } fclose($fp);
Lösung
Nachdem ich mich umgesehen hatte, ging ich zum Server, um das Nginx-Protokoll zu überprüfen. Dort wurde tatsächlich eine Fehlermeldung angezeigt geändert
2020/05/06 13:09:13 [crit] 1482#0: *23258 open() "/aichenk/soft/nginx/fastcgi_temp/4/17/0000000174" failed (13: Permis sion denied) while reading upstream, client: 172.21.0.12, server: 192.168.5.5, request: "GET /temp/t2 HTTP/1.1", upstr eam: "fastcgi://127.0.0.1:9001", host: "192.168.5.5:8080"
Der Test wurde bestanden
ErklärungPersönliche Analyse: Dieser Fehler tritt tatsächlich auf, wenn die Daten im Puffer abgelegt werden, und zwar nicht nur bei großen Dateien, sondern auch bei der Datenübertragung, die einen bestimmten Wert überschreitet Habe dieses Problem. Passen Sie einfach auf, wenn Sie die Umgebung einrichten Empfohlenes Lernen: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas tun, wenn beim Herunterladen großer Dateien in PHP ein Fehler auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!