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.
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>
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>
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>
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!