2016-03-23 24 views
4

Ich zeige eine PDF im Browser mit Inline von API über eine aspx-Seite.Content-Disposition Inline-Dateinamen Problem mit IE

Während der pdf-Speicher mit Chrome/Firefox, nimmt den Dateinamen von
header("Content-Disposition", "inline;filename=xyz.pdf")

Aber während der pdf-IE Speicher liest nicht die Dateinamen aus
header("Content-Disposition", "inline;filename=xyz.pdf").
stattdessen nimmt es den aspx Namen.

Technische Details

Ich habe eine xyz.aspx Seite. Die Seite xyz.aspx ruft eine API für ein Dokument auf. Dann wird das heruntergeladene Dokument von der API in den Browser mit Inline übertragen, um das PDF-Dokument anzuzeigen. Setzen Sie den Antwortkopf wie folgt und schreiben Sie die Dateibytes.

  HttpContext.Current.Response.ClearHeaders(); 

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

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

    Während die geöffnete pdf in IE Spar es anstelle des Namens von Kopf xyz.aspx nimmt.

  • Voraussetzung:

    Während das pdf mit IE zu speichern, müssen Sie es mit dem Namen PDF speichern.

Ich googelte so viel, wie jeder sein Verhalten IE sagt. Ich hoffe, dass jemand eine Lösung kennt.

Hinweis: Ich muss das PDF im Browser anzeigen und dann speichern. Nicht herunterladen mit "Anhang"

Vielen Dank im Voraus.

Antwort

5

Es ist wahr, einige Versionen von IE nicht ("Content-Disposition", "inline;filename=...")

umgehen Dies liegt daran, filename=... ursprünglich für die Befestigung Disposition bestimmt war. Nicht alle Browser-basierten PDF-Viewer können damit umgehen.

Die einzige Lösung, die ich sehe, ist den Zugriff über eine andere URL zu ermöglichen. Angenommen, Sie haben eine Route zum PDF wie: /pdf/view. Wenn Sie es in /pdf/view/filename ändern und Sie Ihre Anwendung so konfigurieren, dass sie diese Route verarbeitet, wird /pdf/view Ihr Problem gelöst.

Sie können die Download-URL auch auf dem Webserver neu schreiben. Abhängig von Ihrem Webserver haben Sie verschiedene Möglichkeiten dies zu tun.