ホームページ > バックエンド開発 > PHPチュートリアル > ディスクストレージを使用せずに、PHP で FTP からユーザーのブラウザにファイルを直接ダウンロードする方法は?

ディスクストレージを使用せずに、PHP で FTP からユーザーのブラウザにファイルを直接ダウンロードする方法は?

Susan Sarandon
リリース: 2024-11-02 12:03:30
オリジナル
576 人が閲覧しました

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

ディスクストレージを使用せずに PHP スクリプトを介して FTP からブラウザにファイルをダウンロードする

PHP を使用すると、FTP サーバーからファイルを効率的に取得できます。しかし、ローカル ディスク ストレージをバイパスしてファイルをユーザーのブラウザに直接配信することが目的の場合はどうなるでしょうか?

出力バッファリングを使用しない方法:

これを達成するには、次のようにします。出力バッファリング関数 (ob_start() とその対応部分) を削除します:

<code class="php">ftp_get($conn_id, "php://output", $file, FTP_BINARY);</code>
ログイン後にコピー

Content-Length ヘッダーの追加:

Content-Length ヘッダーを含めるには、次のようにします。これらの手順:

  1. ftp_size() を使用してファイル サイズをクエリします。
  2. コンテンツ タイプ、性質、および長さの HTTP ヘッダーを設定します。
  3. ftp_get() を使用して、ファイルをブラウザに直接取得します。

コード例:

<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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート