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

现在,我正在执行以下操作:

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

使用上面的代码,我得到“ foo.aspx.pdf”作为要保存的文件名。 我似乎记得能够在响应中添加标头以指定要保存的文件名。

===============>>#1 票数:57 已采纳

在标题中添加内容处置:

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

===============>>#2 票数:18

仅供参考...如果您使用“内联”而不是“附件”,则该文件将在IE中自动打开。 而不是通过“打开/保存”对话框提示用户。

Response.AppendHeader("content-disposition", string.Format("inline;FileName=\"{0}\"", fileName));

===============>>#3 票数:15

Response.AppendHeader("Content-Disposition", "attachment; filename=foo.pdf");

===============>>#4 票数:2

由于某种原因,那里的大多数答案似乎都没有尝试对文件名值进行编码。 如果文件包含空格,分号或引号,则可能无法正确显示。

看起来您可以使用ContentDisposition类生成正确的标头值:

Response.AppendHeader("Content-Disposition", new ContentDisposition
{
    FileName = yourFilename
}.ToString());

您可以签出ContentDisposition.ToString()的源代码,以确认它正在尝试正确地对其进行编码。

警告 :文件名包含破折号(而不是连字符)时,这似乎崩溃。 我还没有研究这个问题。

===============>>#5 票数:1

 Response.AddHeader("Content-Disposition", "attachment;filename=" & FileName & ";")

  ask by Josh Bush translate from so

未解决问题?本站智能推荐:

1回复

从asp.net页面下载文件

我正在使用以下代码从asp.net页面下载文件: 效果很好,但是有没有办法强迫用户只能保存文件? 上面的方法还提供了“打开”选项,这意味着用户可以编辑服务器上不需要的文件。 上面的代码是在单击按钮时执行的,是否可以在链接上显示该代码?
2回复

将文件存储在ASP.net网站中,然后下载到浏览器

我正在asp.net网站上用C#创建一个Excel文件。 然后,我想将此文件保存在Web服务器文件中的某个位置,并将该文件发送到浏览器以供用户下载。 我已经在开发环境中的本地系统上运行了它,但是文件寻址不正确。 如何在“〜\\ ParentFolder \\ SubFolder
1回复

重定向到ASP.NET中的新选项卡

我有巴顿。 我需要打开带有内容的新标签页。 我试图从这篇文章中应用答案在我的案例中在新标签页中打开URL ,但是只是在左上角输入文本,例如“ window.open ...”。 将_blank添加到链接-也无济于事。
2回复

从ASP.NET C#中的Web服务器将文件下载到客户端的PC

我正在尝试从服务器下载文件到客户端选择到其计算机上的文件夹。 但我不断收到错误could not find part of the path 例如,DownloadLocation可能是C:/ myfolder 码:
2回复

如何在asp.net项目中显示xml文件?

在.Net Web服务中,当您单击“调用”按钮时,将打开一个XML文件。 我有一个带有按钮的页面。 我想当我单击它时像Web服务页面一样打开XML页面。 我已经编写了以下代码,但没有返回XML页面。 我怎样才能做到这一点? 1)我在“ http://mysite/default
1回复

ASP.NET WebForm加载GIF文件响应未隐藏

我要添加一个名为loading.gif的gif,并将其放置在div中,该div的id属性的值为“ loadingDiv”,并​​且应在每次click事件触发时显示。 该“ loadingDiv” div的显示事件在发送请求的同时被触发。 当响应到来时,将触发hide事件,并且
1回复

ASP.NET:是否可以在同一事件处理程序中强制下载存储的文件并更新标签?

我有一个ListView数据源到数据库,该数据库显示要下载的文件列表以及每个文件的下载计数。 在ItemTemplate中,我使用Label显示当前计数,并使用LinkBut​​ton,将Text设置为文件名,将Command设置为“ select”,以触发Listviews Selected
3回复

在新标签页asp.net中打开页面[重复]

这个问题已经在这里有了答案: 响应。重定向到新窗口 20个答案 我正在使用ASP.NET C#编写项目。 我想实现linkbutton click事件以在新选项卡中打开新页面,但是在我必须创建新的会话变量之前。 我已经试过了: 但这还是行不通的。
1回复

处理程序响应错误的文件名编码

我的管理员: 如果我的文件名是俄语,则结果类似于“ОбщаѰинфРsфмация.docx”,且编码错误。 数据库返回正确的值。
3回复

Asp.net-下载文件后无法更改面板的可见性

我正在显示一个包含按钮的面板。 当用户单击按钮时,它会进行一些处理,然后为该用户下载文件。 此处的代码如下所示: 在函数ReturnToMemberScreen中,我正在更改某些面板的可见性。 这是函数: 我可以很好地下载文件,我的问题是面板的可见性没有改变。 像我一样,