ディスクストレージを使用せずに PHP スクリプトを介して FTP からブラウザにファイルをダウンロードする
PHP を使用すると、FTP サーバーからファイルを効率的に取得できます。しかし、ローカル ディスク ストレージをバイパスしてファイルをユーザーのブラウザに直接配信することが目的の場合はどうなるでしょうか?
出力バッファリングを使用しない方法:
これを達成するには、次のようにします。出力バッファリング関数 (ob_start() とその対応部分) を削除します:
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Content-Length ヘッダーの追加:
Content-Length ヘッダーを含めるには、次のようにします。これらの手順:
コード例:
<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>
追加メモ:
以上がディスクストレージを使用せずに、PHP で FTP からユーザーのブラウザにファイルを直接ダウンロードする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。