ASP.NET 下载对话框

本文关键字:对话框 下载 NET ASP | 更新日期: 2023-09-27 18:36:22

我有这个代码。

<li><a href="downloads/PDF_File.pdf">PDF</a></li>

但它打开了 pdf 文件,现在我是 ASP.NET 新手,如何打开下载对话框?

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());