将数据转储到响应流时,如何指定文件名?

现在我正在做以下工作:

byte[] data= GetFoo();
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/pdf";            
Response.BinaryWrite(data);
Response.End();

通过上面的代码,我得到了"foo.aspx.pdf"作为要保存的文件名.我似乎记得我能够在响应中添加一个标题,以指定要保存的文件名.

推荐答案

向标题添加Content-Disposition:

Response.AddHeader("content-disposition", @"attachment;filename=""MyFile.pdf""");

Asp.net相关问答推荐

如何在运行时判断动态数据类型的类型?

为 Web 请求实现速率限制算法的最佳方法是什么?

用户NT AUTHORITY\NETWORK SERVICE登录失败

如何在没有实体框架的情况下使用 ASP.NET Identity 3.0

在视图 Mvc.net 中访问路由值

Web.config 导致被组策略阻止错误

ASP.NET IIS - 请求何时排队?

Windows 运行 ASP.NET 的 IIS 替代方案

会话变量保存在哪里?

使用 jQuery 调用 ASP.NET PageMethod/WebMethod - 返回整个页面

我的 asp.net mvc Web 应用程序中的 OutputCache 设置.防止缓存的多种语法

为 ASP.NET Core MVC 显示 404 Not Found 页面

C# 7 本地函数未按预期工作且未显示错误

如何防止 XXE 攻击(.NET 中的 XmlDocument)

对 ASP.NET 2.0 网页进行单元测试的最佳方法是什么?

使用 .NET 连接到 AS400

如何强制 netwtonsoft json 序列化程序将 datetime 属性序列化为字符串?

错误处理(向客户端发送 ex.Message)

从服务器下载 ASP.NET 文件

ASP.NET MVC2/3 中runAllManagedModulesForAllRequests的正确用法是什么?