私は Zend を使用しており、提供できるようにしたい webroot の外にいくつかのファイルがあります。私は 2 つの方法を試しましたが、どちらも IE 8 以下のバージョンを除くすべてのブラウザーで機能します。
私が試した2つの(実用的な)アプローチは次のとおりです。
// Approach #1
header('Content-Type: application/pdf');
header("Pragma: ");
header("Content-Disposition: attachment; filename=\"$filename\"");
//header('Content-Transfer-Encoding: binary');
header("Pragma: no-cache");
header("Expires: 0");
readfile($file);
// Approach #2
$this->getResponse()
->setHeader('Content-Disposition', "attachment; filename=$filename")
->setHeader('Content-type', 'application/x-pdf');
fpassthru($file);
私が言ったように、どちらのアプローチも最新のブラウザー (IE9 でさえも) では機能しますが、古いバージョンの IE では機能しません。私が得ているエラーは次のとおりです: http://cl.ly/image/1G3x370b1s09
このトピックに関するいくつかの投稿を調べて、数えきれないほどのさまざまなヘッダーの組み合わせを試しました。古いブラウザで問題を引き起こさない、この機能を処理するためのより確実な方法はありますか?
ありがとう!