如何将文件发送到客户端以便打开"下载"对话框?

ski*_*kid 2 asp.net asp.net-3.5

我有一个文件,在我的网站上说PDF,当用户访问页面时,我想在页面加载或按钮点击时显示pdf的下载对话框.

我做了一个谷歌搜索,我找到了两种方法来做到这一点,但想知道这样做的可接受方式是什么?我目前正在这样做

string pdfPath = MapPath("mypdf.pdf");
Response.ContentType = "Application/pdf";


Response.AppendHeader( "content-disposition",
        "attachment; filename=" + name );
Response.WriteFile(pdfPath);
Response.End();
Run Code Online (Sandbox Code Playgroud)

(代码基于http://aspalliance.com/259的代码,也可以从http://www.west-wind.com/weblog/posts/76293.aspx找到代码 )

Mic*_*ker 5

您的代码将完美地显示给用户的文件.但是他们必须使用"另存为"选项来实际保存它.

如果您希望向用户显示"保存对话框",请尝试以下操作:

string pdfPath = MapPath("mypdf.pdf");
Response.ContentType = "Application/pdf";
Response.AppendHeader("content-disposition",
        "attachment; filename=" + pdfPath );
Response.TransmitFile(pdfPath);
Response.End();
Run Code Online (Sandbox Code Playgroud)

这当然假定文件实际存在于服务器上并且没有动态生成.