wake-up-neo.com

PDF Handler: content-disposition Dateiname

Ich gebe eine PDF -Datei in einem Webbrowser (IE8) HttpContext.Response.writefile(fileName) aus und es funktioniert großartig. Wenn ich versuche, die Datei zu speichern, wird mir standardmäßig der Name des ashx-Handlers angezeigt. Ich möchte eigentlich den richtigen Namen weitergeben.

Ich habe versucht, Headerinformationen wie folgt hinzuzufügen:

context.Response.AddHeader("content-disposition", "attachment; filename=" + fileInfo.Name);

Und es funktioniert, aber ich möchte nicht, dass der Benutzer zwischen Öffnen und Speichern wählen muss. Ich möchte, dass die Datei normal geöffnet wird. Wenn der Benutzer sich zum Speichern entscheidet, würde er/sie den Standarddateinamen angeben.

Ich habe auch versucht:

context.Response.AddHeader("content-disposition", "inline; filename=" + fileInfo.Name);

Oder einfach, wie Scott Hanselman schlug in seinem Blog vor .

context.Response.AddHeader("content-disposition", "filename=" + fileInfo.Name);

Nichts davon arbeitet für mich. Hat jemand irgendwelche Ideen?

13
user2062308

Siehe Testfälle unter http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdf - es scheint, dass dies im IE einfach fehlt.

12
Julian Reschke

Im Fall von INLINE scheint es, dass Internet Explorer den letzten Parameter in der URL verwendet, um den Dateinamen zu erstellen Wenn Ihre URL zum Beispiel http://doc.com/131231231 IE ist Sie werden aufgefordert, die Datei als 131231231.pdf .__ zu speichern. Wenn Sie einen Dateinamen benötigen, z. B. foo_131231231.pdf Sie können die IE hacken, indem Sie diese URL verwenden: http://doc.com/ foo_131231231 Möglicherweise müssen Sie Ihre App ein wenig ändern, um solche hässlichen Parameter zu erwarten, aber am Ende funktioniert Ihre App wie erwartet.

3
LyuboBG

Ich bin auch auf dieses Problem gestoßen ... Was mir geholfen hat, war auch der Inhaltstyp auf application/pdf gesetzt (anstelle von application/x-pdf, der veraltet ist).

response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline; filename=\"Report.pdf\"");
2
zeisi