ホームページ >バックエンド開発 >PHPチュートリアル >サーバーストレージを使用せずに PHP で FTP ファイルをブラウザに直接ダウンロードするにはどうすればよいですか?
PHP スクリプトでは、FTP サーバーからファイルをフェッチするのが一般的なタスクです。ただし、これらのファイルをユーザーのブラウザに送信する前に Web サーバーに保存することは望ましくない場合があります。この記事では、サーバー ストレージをバイパスし、リダイレクトを回避して、FTP サーバーからブラウザにファイルを直接ダウンロードする方法について説明します。
最初のコードは、ftp_get( を使用して FTP ファイルをメモリに取得します。 ) および ob_start():
<code class="php">public static function getFtpFileContents($conn_id , $file) { ob_start(); $result = ftp_get($conn_id, "php://output", $file, FTP_BINARY); $data = ob_get_contents(); ob_end_clean(); if ($resul) return $data; return null; }</code>
ファイルを保存せずにブラウザに直接ストリーミングするには、出力バッファリングを削除します:
<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
Content-Length ヘッダーを含めるには、ftp_size():
<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>
を使用してファイル サイズをクエリします。必要に応じてエラー処理を実装することを忘れないでください。 FTP ファイル処理の詳細については、「クリックされたファイルを FTP からリストしてダウンロードする」などのリソースを参照してください。
以上がサーバーストレージを使用せずに PHP で FTP ファイルをブラウザに直接ダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。