我有这段代码..
<li><a href="downloads/PDF_File.pdf">PDF</a></li>
但它打开了pdf文件,现在我是ASP.NET的新手,如何打开下载对话框?
答案 0 :(得分:1)
检查此问题:
Download Stream File From URL in ASP.Net
以及这些文章:
File Download in ASP.NET and Tracking the Status of Success/Failure of Download
答案 1 :(得分:0)
基本上,这里发生的是pdf文件的正常行为。默认情况下,IIS为Web应用程序中的任何pdf文件提供“pdf”MIME类型。当您在应用程序中访问pdf时,浏览器会读取MIME类型并了解您正在访问pdf文件。大多数浏览器都希望在其内置PDF阅读器中显示它,而不是提示您保存它。如果您确实需要一个下载对话框来显示pdf,您可以在web.config中更改pdf的MIME类型,以便IIS在您的应用程序中将pdf作为基本文件类型提供:
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".pdf" />
<mimeMap fileExtension=".pdf" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
注意:您应首先删除您在web.config中手动设置的MIME类型,因为可能已在应用程序级别设置了相同扩展名的MIME类型。
现在,IIS将pdf文件作为基本/未知文件类型提供,并且可以下载。如果您只是将'.pdf'替换为其他扩展名,则适用于任何文件类型。
答案 2 :(得分:0)
我不知道如何用现有文件做到这一点,但不久前我写了一段代码,结合iTextSharp和ASP.net(框架4)MemoryStream对象来创建然后下载pdf文件,我希望这可以乐于助人:
MemoryStream msPDF = new MemoryStream();
// do some stuff with iTextSharp ...
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=myPdf.pdf"); // open/save dialog
Response.BinaryWrite(msPDF.ToArray());