我有这个代码..
<li><a href="downloads/PDF_File.pdf">PDF</a></li>
但它会打开 pdf 文件,现在我是 ASP.NET 的新手,如何打开下载对话框?
基本上,这里发生的是 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”换成不同的扩展名,这适用于任何文件类型。
我不知道如何对现有文件执行此操作,但不久前我编写了一段代码,结合了 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());