ローカル ストレージを使用せずに FTP サーバーからブラウザにファイルをダウンロードする
PHP スクリプトを使用して FTP サーバーからファイルをダウンロードする場合、一般的にファイルはユーザーのブラウザに送信される前に、Web サーバー上に一時的に保存されます。ただし、このアプローチは非効率的になる可能性があります。
保存せずにファイルの内容を取得する
ファイルをディスクに保存せずにブラウザに直接送信するには、出力バッファリングを削除するだけです。関数 (ob_start() および ob_get_contents())。このコードは、ファイルを出力ストリームに直接送信します。
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Content-Length ヘッダーの追加
Content-Length ヘッダーを含めるには、ファイル サイズをクエリします。ダウンロードする前に ftp_size() を使用します:
<code class="php">$file_path = "remote/path/file.zip"; $size = ftp_size($conn_id, $file_path);</code>
次に、適切なヘッダーを設定してファイルをダウンロードします:
<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>
その他の考慮事項
エラーを処理し、ダウンロード用のファイル名などの適切なファイル情報を応答ヘッダーに指定することを忘れないでください。包括的なガイドについては、リンクされたリソースを参照してください。これらの技術を使用すると、一時ストレージを必要とせずに、FTP サーバーからブラウザにファイルを直接効率的にダウンロードできます。
以上がローカル ストレージを使用せずに、FTP サーバーからブラウザにファイルを直接ダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。