1.問題:
ユーザーがサーバーからファイルをダウンロードできるようにしようとしていますが、ファイルの「名前を付けて保存」ダイアログが表示されません。
2.原因:
ヘッダー内のコンテンツ タイプ宣言が正しくありません。
3.解決策:
ファイルのダウンロードのコンテンツ タイプ ヘッダーが application/octet-stream に設定されていることを確認します。
header('Content-Type: application/octet-stream');
4.追加のヒント:
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 サイトの他の関連記事を参照してください。