2011-12-30 20 views
1

私はPDFファイルにアクセスしています。ユーザーがリンクをクリックすると、[名前を付けて保存]ダイアログが表示されるように、ページにリンクが必要です。PHPまたはJavaScriptを使用して[名前を付けて保存]ダイアログ

私はsolution using an iframeを見つけましたが、ユーザーがPDFプラグインをインストールしている場合は、[名前を付けて保存]ダイアログが表示されません。

ユーザーに[名前を付けて保存]ダイアログを表示する方法はありますか?

申し訳ありませんが、ユーザーがリンクをクリックすると、リクエストはajaxから送信されます。それは、PDFファイルのURLのためのポストリクエストになります。このリクエストの結果、PDFファイルがあることがわかります。ブラウザで開く代わりに、[Save as dialog]ダイアログボックスを表示したいと思います。 PHPの方法はあり

+1

あなたはそこに 'ヘッダ()'答えを試してみましたか? – jprofitt

+0

これは[あなたがリンクした質問](http://stackoverflow.com/questions/6699461/forcing-save-as-dialog-via-jquery-get)の正確な複製です。答えは慎重に。その質問で –

+0

私は何を意味した、私の場合のための正解はありません。 私はhtaccessが私を助けることができると思っています。 主な問題は私が今持っている - iframeアプローチを使用しているときに私はpdfプラグインをインストールしたので、pdfファイルがロードされています。 私はこの状況を変える機会が1つしかないようです - 私はApacheによって必要なヘッダーを送る必要があります。 – user1016265

答えて

2

、あなたはコンテンツが含まれており、いくつかのヘッダーに通過しますPHPのファイルにユーザーをリダイレクトする必要があります。

header('content-type: application/x-pdf'); 
header('content-disposition: attachment; filename=yourfile.pdf'); 
readfile('yourfile.pdf'); 

これは、ほとんどのすべてではない奇妙なブラウザへの取り組みを克服する必要があります。保存ダイアログの代わりにプラグインを取得しても、IMOを行うことはそれほど多くありません。

幸運

0

あなたはajax経由でPOSTを送信したくありません。代わりに、見つけた質問のthis answerに記載されているiframeにPOSTし、見つけた質問のthis answerに記載されているように、ブラウザに何をすべきかを伝えるのにContent-Dispostionヘッダーを使用してください。

(質問は実際には重複しているため、この「コミュニティのwiki」をマーク。)

関連する問題