Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn beim Herunterladen großer Dateien in PHP ein Fehler auftritt?

Was tun, wenn beim Herunterladen großer Dateien in PHP ein Fehler auftritt?

藏色散人
藏色散人Original
2022-11-13 09:47:121748Durchsuche

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.

Was tun, wenn beim Herunterladen großer Dateien in PHP ein Fehler auftritt?

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ärung

Persö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!

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