ホームページ > バックエンド開発 > PHPチュートリアル > 「header()」を使用してPHPでファイルを強制的にダウンロードする方法は?

「header()」を使用してPHPでファイルを強制的にダウンロードする方法は?

DDD
リリース: 2024-12-04 14:54:10
オリジナル
257 人が閲覧しました

How to Force File Downloads with PHP Using `header()`?

header() を使用して PHP でファイルを強制的にダウンロードする

1.問題:

ユーザーがサーバーからファイルをダウンロードできるようにしようとしていますが、ファイルの「名前を付けて保存」ダイアログが表示されません。

2.原因:

ヘッダー内のコンテンツ タイプ宣言が正しくありません。

3.解決策:

ファイルのダウンロードのコンテンツ タイプ ヘッダーが application/octet-stream に設定されていることを確認します。

header('Content-Type: application/octet-stream');
ログイン後にコピー

4.追加のヒント:

  • ヘッダーを壊す可能性のある文字からファイル名を保護するには、addcslashes 関数を使用します。
  • Content-Disposition を使用して、ダウンロードしたファイルに特定のファイル名を設定します。付属品。ファイル名=<ファイル名> header.
  • Content-Length ヘッダーを使用してコンテンツの長さを指定します。
  • キャッシュを防止し、ファイルがブラウザに表示されるのではなく確実に保存されるようにヘッダーを追加します。

5.コード例:

$quoted = sprintf('"%s"', addcslashes(basename($file), '"\'));
$size = filesize($file);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $quoted);
header('Content-Transfer-Encoding: binary');
header('Connection: Keep-Alive');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $size);
readfile($file);
ログイン後にコピー

以上が「header()」を使用してPHPでファイルを強制的にダウンロードする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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