Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Muat Turun Terus Fail dari FTP ke Pelayar Pengguna dalam PHP tanpa Storan Cakera?

Bagaimana untuk Muat Turun Terus Fail dari FTP ke Pelayar Pengguna dalam PHP tanpa Storan Cakera?

Susan Sarandon
Susan Sarandonasal
2024-11-02 12:03:30486semak imbas

How to Directly Download Files from FTP to User's Browser in PHP without Disk Storage?

Memuat Turun Fail melalui Skrip PHP dari FTP ke Penyemak Imbas tanpa Storan Cakera

Menggunakan PHP, fail boleh diambil dengan cekap daripada pelayan FTP. Walau bagaimanapun, bagaimana jika objektifnya adalah untuk menghantar fail terus ke penyemak imbas pengguna, memintas storan cakera setempat?

Kaedah Tanpa Penimbalan Output:

Untuk mencapai ini, hanya alih keluar fungsi penimbalan output (ob_start() dan rakan sejawatannya):

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

Menambah Pengepala Panjang Kandungan:

Untuk memasukkan pengepala Panjang Kandungan, ikuti langkah berikut:

  1. Soal saiz fail menggunakan ftp_size().
  2. Tetapkan pengepala HTTP untuk jenis kandungan, pelupusan dan panjang.
  3. Gunakan ftp_get() untuk dapatkan semula fail terus ke penyemak imbas.

Contoh Kod:

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

Nota Tambahan:

  • Ingat untuk mengendalikan ralat dengan betul.
  • Untuk gambaran keseluruhan komprehensif pengendalian fail FTP, rujuk dokumentasi "Senarai dan Muat Turun Fail Diklik daripada FTP".

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Terus Fail dari FTP ke Pelayar Pengguna dalam PHP tanpa Storan Cakera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn