Heim > Backend-Entwicklung > PHP-Tutorial > So laden Sie große Dateien zuverlässig in PHP herunter: Mit welchen Techniken können beschädigte oder unvollständige Übertragungen vermieden werden?

So laden Sie große Dateien zuverlässig in PHP herunter: Mit welchen Techniken können beschädigte oder unvollständige Übertragungen vermieden werden?

Susan Sarandon
Freigeben: 2024-11-11 07:30:03
Original
676 Leute haben es durchsucht

How to Reliably Download Large Files in PHP: What Techniques Can Avoid Corrupted or Incomplete Transfers?

Zuverlässiges Herunterladen großer Dateien in PHP: Beheben von Übertragungsproblemen

Beim Herunterladen großer Dateien über PHP können Probleme mit beschädigten oder unvollständigen Übertragungen auftreten frustrierend. Um dieses Problem anzugehen, sollten Sie die folgenden Ansätze in Betracht ziehen:

Dateien aufteilen

Die einfachste Methode in PHP besteht darin, die Dateien in kleinere Segmente aufzuteilen. Diese Technik ist besonders effektiv für große Dateien, die die Speichergrenzen von PHP überschreiten.

$filename = $filePath . $filename;
$chunksize = 5 * (1024 * 1024);

if (file_exists($filename)) {
    set_time_limit(300);
    $size = filesize($filename);

    // Set headers
    header('Content-Type: application/octet-stream');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: ' . $size);

    if ($size > $chunksize) {
        $handle = fopen($filename, 'rb');
        while (!feof($handle)) {
          print(@fread($handle, $chunksize));
          ob_flush();
          flush();
        }
        fclose($handle);
    } else {
        readfile($path);
    }

    exit;
} else {
    echo 'File "' . $filename . '" does not exist!';
}
Nach dem Login kopieren

Alternative Funktionen

Erwägen Sie neben fopen und fgets auch die Verwendung von PHP-Funktionen wie http_send_file oder http_send_data. Diese Funktionen sind speziell für das Senden von Dateiinhalten konzipiert und können die Übertragungszuverlässigkeit verbessern.

Dedizierte Skripte

Für fortgeschrittenere Szenarien erkunden Sie dedizierte Skripte, die Protokolle wie cURL oder FTP nutzen um Dateidownloads effizient abzuwickeln. Diese Skripte können zusätzliche Kontrolle und Flexibilität bieten.

Zusätzliche Überlegungen

Stellen Sie sicher, dass Ihre Datei in UTF-8-Kodierung gespeichert ist, um Beschädigungen während des Downloads zu verhindern. Stellen Sie sicher, dass Ihr Server über ausreichend Speicher und Zeitlimits für die Verarbeitung großer Downloads verfügt. Erhöhen Sie bei Bedarf das Speicherlimit mit ini_set('memory_limit', '1G').

Das obige ist der detaillierte Inhalt vonSo laden Sie große Dateien zuverlässig in PHP herunter: Mit welchen Techniken können beschädigte oder unvollständige Übertragungen vermieden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage