Diese Frage sucht nach einer effizienten Möglichkeit, eine Datei von einem FTP-Server abzurufen und direkt an den Browser des Benutzers zu senden , wodurch lokaler Speicher und Weiterleitungen umgangen werden.
Die bereitgestellte PHP-Funktion getFtpFileContents ruft die Datei in den Speicher ab, erfordert jedoch nachfolgende manuelle Schritte, um sie an den Browser zu senden. Um die Notwendigkeit einer Zwischenspeicherung zu beseitigen, entfernen Sie einfach den Ausgabepuffercode:
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Wenn Sie den Content-Length-Header einschließen möchten, müssen Sie zuerst die Dateigröße abfragen:
<code class="php">$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 in Ihren Code zu integrieren, um einen robusten Betrieb zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWie streame ich FTP-Dateien direkt in den Browser, ohne sie lokal zu speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!