web-dev-qa-db-ja.com

FirefoxにPDFビューアでファイルを開かせる方法はありますか?

オンラインで見つけたPDFファイルを表示しようとしています。

通常、私がPdfファイルを開こうとすると、FirefoxはそれをデフォルトのPdfビューア(pdfjsと呼ばれる)に表示します。これは正常で正常な動作です。

ただし...
オンラインで見つけたこの特定のPdfを使用して、その場所へのリンクをクリックすると、Firefoxがダウンロードダイアログを表示します。ファイルはダウンロードしてネイティブに表示できるPDFですが、ファイルは「バイナリファイル」として記述されています。

Webサーバーが「not telling」Firefoxであると想定しています。このPdfファイルは実際にはPdfファイルです。したがって、Firefoxはそれが「バイナリファイル」であるとしか想定できません。

これは私に疑問を抱かせました...

ファイルをダウンロードする代わりに、この煩わしさに再び遭遇した場合、FirefoxforceデフォルトのPDFビューアでファイルを(オンラインまたはその他の方法で)開くには?

試行されたソリューション:

  1. Firefoxの組み込みPDFビューア(pdf.js)を手動で呼び出す方法は? からの回答を試しましたが、役に立ちませんでした。 Firefoxは単に「バイナリファイル」をダウンロードしようとします。
  2. 追加した view-source: PDFの場所の先頭まで(つまり、view-source:https://www.website.com/pdf.pdf)、Pdfファイルの生のASCII表示されるテキストを取得するだけです。

PS:Firefox48.0.2を使用しています...
はい、古いです...


要求に応じて:

Screenshot of Response and Request Headers

3
I_Don't_Code

サイトがブラウザにファイルを直接開くのではなくダウンロードさせる方法はいくつかあります。

download HTML属性

anchorタグのこの属性は、通常の方法でファイルを処理するのではなく、ブラウザにファイルのダウンロードを強制しようとします。

通常、これは、自動生成されたドキュメント名を取得して、ユーザーにとって適切なものとして提示する必要がある場合に使用されます。

使用法:<a href="http://www.website.com/path/to/YourDocument.pdf" download="YourDocument.pdf">...

私はまだこれを回避する方法を見つけていませんが、あなたの問題の本当の原因は以下にあるので、私はそれを完全に調査していません...

HTTPヘッダー

Content-Disposition

Webサーバーは、Content-Dispositionヘッダーを使用してドキュメントの要求に応答し、ブラウザーがファイルを受信する方法を記述できます。

Content-Disposition: Attachmentは、通常のようにファイルを処理するのではなく、ファイルをダウンロードする必要があることをブラウザに通知します。

Content-Disposition: Inlineは、ブラウザにWebページ内またはWebページとして表示できることを通知します。

Attachmentヘッダーを受け取り、それらをInlineヘッダーに置き換えるFirefoxアドオンを次に示します。

https://addons.mozilla.org/en-US/firefox/addon/bypass-forced-download/

技術的には、Content-Disposition: attachmentヘッダーをインターセプトし、オンザフライでContent-Disposition: inlineに書き換えます。また、この書き換えを使用する必要があるWebサイトと使用しないWebサイトを指定することもできます。

ほとんどのアドオンと同様に、走行距離は異なる場合があります。

Content-Type

Webサーバーは、Content-Typeヘッダーを使用してドキュメントの要求に応答し、ブラウザーに返すドキュメントのタイプを記述できます。

Content-Type: application/octet-streamは「任意のバイナリデータ」として定義され、基本的にはファイルとしてのみダウンロードできます。それ以外の場合、ブラウザはそれをどうするかを認識しません。

これは、ブラウザが表示しようとしているPDFファイルを要求したときに表示されるものです。

Content-Type: application/pdfは、このファイルをブラウザーで表示する場合、または少なくともFirefoxにファイルが何であるか、およびファイルを正しく処理する方法を理解させる場合に必要になる可能性があります。

以下は、リッスンするように設定でき、コンテンツに基づいてContent-Typeヘッダーを書き換えられるFirefoxアドオンです。

注:ブラウザがMIMEタイプを処理する方法を変更することは危険な場合があります。

https://addons.mozilla.org/en-US/firefox/addon/content-type-fixer/

繰り返しますが、このアドオンはすべての場合に機能する場合と機能しない場合があります。

3
Michael Frank