Heim > Backend-Entwicklung > PHP-Tutorial > Wie lade ich eine FTP-Datei in PHP ohne Serverspeicher direkt in den Browser herunter?

Wie lade ich eine FTP-Datei in PHP ohne Serverspeicher direkt in den Browser herunter?

Susan Sarandon
Freigeben: 2024-11-03 06:27:30
Original
594 Leute haben es durchsucht

How to Download an FTP File Directly to the Browser in PHP Without Server Storage?

Eine Datei von FTP ohne Serverspeicherung oder Umleitung in den Browser herunterladen

In PHP-Skripten ist das Abrufen von Dateien von FTP-Servern eine häufige Aufgabe. Allerdings kann es unerwünscht sein, diese Dateien auf dem Webserver zu speichern, bevor sie an den Browser des Benutzers gesendet werden. In diesem Artikel wird erläutert, wie Sie eine Datei von einem FTP-Server direkt in den Browser herunterladen, den Serverspeicher umgehen und Weiterleitungen vermeiden.

Originalcode

Der ursprüngliche Code ruft eine FTP-Datei mit ftp_get( ) und ob_start():

<code class="php">public static function getFtpFileContents($conn_id , $file)
{
    ob_start();
    $result = ftp_get($conn_id, "php://output", $file, FTP_BINARY);
    $data = ob_get_contents();
    ob_end_clean();
    if ($resul)
        return $data;
    return null;
}</code>
Nach dem Login kopieren

Direkter Stream zum Browser

Um die Datei direkt zum Browser zu streamen, ohne sie zu speichern, entfernen Sie die Ausgabepufferung:

<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Nach dem Login kopieren

Content-Length-Header hinzufügen

Um den Content-Length-Header einzuschließen, fragen Sie die Dateigröße mit ftp_size() ab:

<code class="php">$conn_id = ftp_connect("ftp.example.com");
ftp_login($conn_id, "username", "password");
ftp_pasv($conn_id, true);

$file_path = "remote/path/file.zip";
$size = ftp_size($conn_id, $file_path);

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($file_path));
header("Content-Length: $size"); 

ftp_get($conn_id, "php://output", $file_path, FTP_BINARY);</code>
Nach dem Login kopieren

Denken Sie daran, die Fehlerbehandlung nach Bedarf zu implementieren. Weitere Informationen zur Handhabung von FTP-Dateien finden Sie in Ressourcen wie „Angeklickte Datei von FTP auflisten und herunterladen.“

Das obige ist der detaillierte Inhalt vonWie lade ich eine FTP-Datei in PHP ohne Serverspeicher direkt in den Browser herunter?. 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