Ich habe ASP.NET-Seite mit einem iFrame für die Anzeige einiger PDF-Berichte auf dieser Seite. Wenn der Benutzer den Berichtstyp aus der Dropdown-Liste auswählt, füge ich die erforderlichen Berichtsdaten in die ASP.NET-Sitzung ein und ändere das Attribut "src" des iFrame in die .ashx-Moduladresse, die den PDF-Bericht generiert. Aber wenn Adobe glug-in zum Anzeigen von .pdf-Dateien im Browser nicht installiert ist, schlägt der Browser vor, die Berichtsdatei zu speichern, und der Name der vorgeschlagenen Datei lautet "HandlerName.ashx". Aber ich möchte den Browser vorgeschlagen, um die Datei mit dem Namen "Report.pdf" zu speichern. Darf ich das machen? Gibt es Workarounds?Herunterladen von Dateien mit ASP.NET .ash-Modulen
Antwort
Try Inline-Content-Disposition, jedoch muss ich dies überprüfen:
Response.ContentType = "application/pdf";
Response.AppendHeader("content-disposition", "inline; filename=" + name);
Mike, Es ist großartig. Vielen Dank von Kharkov, GlobalLogic. Мир тесен;) – w1z
:), aber soweit ich weiß, wird das nicht funktionieren ... А кто ты конкртейней? –
Ich würde ein bisschen mit dieser Lösung spielen, aber scheint, dass es nicht funktioniert ... "тісніше немає вже куди: D" –
Fügen Sie den folgenden Header in Ihrer Ashx-Datei:
context.Response.AddHeader("content-disposition", "attachment;filename=PUTYOURFILENAMEHERE.pdf");
context.Response.ContentType = "application/pdf";
Use
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=Report.PDF");
Response.WriteFile(Server.MapPath("~/YourPath/Report.PDF"));
Response.End();
Achtung. Es muss eine generierte .pdf Datei angezeigt werden, falls das Adobe Plug-in installiert ist ... – w1z