
ディスクストレージを使用せずに PHP スクリプトを介して FTP からブラウザにファイルをダウンロードする
PHP を使用すると、FTP サーバーからファイルを効率的に取得できます。しかし、ローカル ディスク ストレージをバイパスしてファイルをユーザーのブラウザに直接配信することが目的の場合はどうなるでしょうか?
出力バッファリングを使用しない方法:
これを達成するには、次のようにします。出力バッファリング関数 (ob_start() とその対応部分) を削除します:
1 | <code class = "php" >ftp_get( $conn_id , "php://output" , $file , FTP_BINARY);</code>
|
ログイン後にコピー
Content-Length ヘッダーの追加:
Content-Length ヘッダーを含めるには、次のようにします。これらの手順:
- ftp_size() を使用してファイル サイズをクエリします。
- コンテンツ タイプ、性質、および長さの HTTP ヘッダーを設定します。
- ftp_get() を使用して、ファイルをブラウザに直接取得します。
コード例:
1 2 3 4 5 6 7 8 9 10 11 12 | <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 サイトの他の関連記事を参照してください。