Header() を使用して PHP でファイルを強制的にダウンロードする
問題:
さまざまな試みにもかかわらず、ユーザー エクスペリエンスPHP の header() 関数を使用してサーバーからファイルのダウンロードを促すのが困難です。必要なヘッダーが送信されることを確認しますが、保存ダイアログの表示で問題が発生します。
解決策:
ファイルのダウンロードを正常に強制するには、ヘッダーを適切に設定する必要があります。次のコードは、提起された懸念に対処します:
$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);
以前の試みとの主な違い:
検証済みブラウザ:
このソリューションは、Firefox 8.0.1、Chrome 15.0.874.121、Safari 5.1.1 で動作することが確認されています。
以上がPHP で「header()」を使用してファイルのダウンロードを強制し、ブラウザの表示の問題を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。