2016-03-23 26 views
4

aspxページを使用してAPIからインラインでPDFをブラウザに表示しています。IEでコンテンツのインラインファイル名の問題

クローム/ Firefoxを使用してPDFファイルを保存しながら、
header("Content-Disposition", "inline;filename=xyz.pdf")

からファイル名を取るしかし、IEを使用してPDFファイルを保存しながら、それが
header("Content-Disposition", "inline;filename=xyz.pdf")からファイル名を読み取っていません。
代わりにaspx名が使用されます。

技術的な詳細

私はxyz.aspxページを持っています。 xyz.aspxページは、ドキュメントのAPIを呼び出します。 その後、APIからダウンロードしたドキュメントは、インラインでブラウザに転送され、PDFドキュメントが表示されます。 レスポンスヘッダーを以下のように設定し、ファイルバイトを書き込んでいます。

  HttpContext.Current.Response.ClearHeaders(); 

      Response.AddHeader("Content-Disposition", "inline;filename=\"" + Name + "\""); 

      HttpContext.Current.Response.ContentType = "application/pdf"; 
  • 問題:

    それは、ヘッダから名前の代わりにxyz.aspxを取るIEで開いたPDFを保存中。

  • 要件:

    IEを使用してPDFファイルを保存しますが、それはPDFファイルの名前で保存する必要があります。

私はすべての人がそのIEの動作を伝えるように、あまりにも多くのことを尋ねました。私はある人が解決策を知っていればいいと思う。

注:私はブラウザにpdfを表示して保存する必要があります。 「添付ファイル」を使用してダウンロードしないでください

ありがとうございます。

答えて

5

IEのバージョンがfilename=...が元々添付処分のために意図されていたためです("Content-Disposition", "inline;filename=...")

を扱うことができない事実です。ブラウザベースのすべてのPDFビューアで処理できるわけではありません。

私が見る唯一の解決策は、別のURL経由でのアクセスを許可することです。 pdfへのルートが/pdf/viewのようにあるとします。 /pdf/view/filenameに変更し、/pdf/viewと同じ方法でこのルートを処理するようにアプリケーションを設定すると、問題は解決します。

ウェブサーバーにダウンロードURLを書き換えることもできます。 ウェブサーバーによっては、さまざまな方法があります。