我有一个名为DisplayBinaryData.aspx的网页 - 此页面的目的是显示/下载任何单词,excel,pdf或图像。我调用此网页并使用查询字符串传递我的BinaryData实体的ID。 BinaryData实体包含使用asp.net fileUploadControl上传的文件,文件名和内容类型。页面加载中的代码如下:
BinaryData obj = GetBinaryObjectById(int.Parse(Request.QueryString["id"]));
Response.Clear();
Response.BufferOutput = true;
Response.AddHeader("Content-Disposition", "attachment; filename=" + obj.FileName);
Response.ContentType = obj.FileContentType;
Response.BinaryWrite(obj.BinaryFile);
Response.Flush();
Response.Close();
Response.End();
此代码在IE中执行完美,但在FireFox中执行时失败。 IE会提示用户保存或打开内容。 FireFox还会提示用户,但对话框无法保存或打开任何内容。在谷歌浏览器中执行此操作时 - 没有对话框,它会自动开始下载内容。
我的问题:我需要这段代码与FireFox兼容 - 有什么建议吗?
答案 0 :(得分:0)
您在Chrome中提到的行为只是针对Chrome的默认设置。您可以通过转到“选项”窗口的“引擎盖下”选项卡来更改它们。然后选中“询问下载前保存每个文件的位置”复选框。
你的obj.FileName名称中是否有空格? 在不同的浏览器中查看“Content Disposition”上的这篇文章。
内容配置不同 浏览器强>
今天我必须解决一个问题 在不同的浏览器中提交 动态生成的下载工作 非常不同/根本没有
设置,我们有一个带有的xml文件 自定义扩展,比如.mj,这是 由ASP提供服务。 HTTP 标题有内容处理 标题和响应类型集。
Response.AddHeader "Content-Disposition", "attachment; filename=""our file.mj"""
Response.ContentType = "text/xml"
这在Internet Explorer中运行良好 文件被下载为“我们的file.mj”。 然而,FireFox和Chrome表现得非常好 不同的是,在FireFox中,文件是 仅下载“我们的”和Chrome 作为“我们的file.xml”。在FireFox中 似乎问题是由 这个文件名中有一个空格 funkdaddu的论坛帖子帮助了我 这个,所以通过删除空间FireFox 现在可以下载文件了 “ourfile.mj”。 ...