Heim > Artikel > Backend-Entwicklung > Wie kann ich Dateien von einem FTP-Server direkt in einen Browser herunterladen, ohne lokalen Speicher zu verwenden?
Herunterladen von Dateien von FTP-Servern auf Browser ohne lokalen Speicher
Beim Herunterladen von Dateien von FTP-Servern mithilfe von PHP-Skripten ist es üblich, sie zu speichern Die Dateien werden vorübergehend auf dem Webserver gespeichert, bevor sie an den Browser des Benutzers gesendet werden. Dieser Ansatz kann jedoch ineffizient sein.
Dateiinhalte ohne Speicherung abrufen
Um eine Datei direkt an den Browser zu senden, ohne sie auf der Festplatte zu speichern, entfernen Sie einfach die Ausgabepufferung Funktionen (ob_start() und ob_get_contents()). Dieser Code sendet die Datei direkt an den Ausgabestream:
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Content-Length-Header hinzufügen
Um den Content-Length-Header einzuschließen, fragen Sie die Dateigröße ab Verwenden Sie vor dem Herunterladen ftp_size():
<code class="php">$file_path = "remote/path/file.zip"; $size = ftp_size($conn_id, $file_path);</code>
Legen Sie dann die entsprechenden Header fest und laden Sie die Datei herunter:
<code class="php">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>
Zusätzliche Überlegungen
Denken Sie daran, Fehler zu behandeln und in den Antwortheadern korrekte Dateiinformationen anzugeben, einschließlich des Dateinamens zum Herunterladen. Eine umfassende Anleitung finden Sie in den verlinkten Ressourcen. Mithilfe dieser Techniken können Sie Dateien effizient von FTP-Servern direkt in Browser herunterladen, ohne dass eine temporäre Speicherung erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateien von einem FTP-Server direkt in einen Browser herunterladen, ohne lokalen Speicher zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!