跨多个浏览器使用asp.net显示图像和文档
我有一个名为DisplayBinaryData.aspx的网页,该网页的目的是显示/下载任何word、excel、pdf或图像。我调用此网页并使用查询字符串传递我的BinaryData实体的id。BinaryData实体包含使用asp.net fileUploadControl上载的文件、文件名和内容类型。页面加载中的代码如下所示:跨多个浏览器使用asp.net显示图像和文档,asp.net,firefox,Asp.net,Firefox,我有一个名为DisplayBinaryData.aspx的网页,该网页的目的是显示/下载任何word、excel、pdf或图像。我调用此网页并使用查询字符串传递我的BinaryData实体的id。BinaryData实体包含使用asp.net fileUploadControl上载的文件、文件名和内容类型。页面加载中的代码如下所示: BinaryData obj = GetBinaryObjectById(int.Parse(Request.QueryString["id"]));
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也会提示用户,但对话框无法保存或打开任何内容。当在google chrome中执行此操作时-没有对话框,它会自动开始下载内容
我的问题:我需要这段代码与FireFox兼容-有什么建议吗?您在Chrome中提到的行为只是对Chrome的默认设置做了修改。您可以通过转到“选项”窗口的“发动机罩”选项卡下的来更改这些选项。然后选中“下载前询问每个文件的保存位置”复选框 您的obj.FileName名称中是否有空格? 在不同的浏览器中查看此帖子 不同环境下的内容配置 浏览器 今天我必须解决一个问题 在不同的浏览器中 动态生成的下载成功了 完全不同 在安装过程中,我们有一个带有 自定义扩展名,比如.mj,它是 由ASP提供服务。HTTP 标题具有内容配置 标题和响应类型集 这在InternetExplorer中工作得很好 文件被下载为我们的file.mj。 然而,FireFox和Chrome表现得非常出色 不同的是,在FireFox中,该文件是 作为我们的浏览器和Chrome下载 作为我们的file.xml。在FireFox it中 问题似乎是由以下原因引起的: 如果文件名中有空格,则 funkdaddu的论坛帖子帮助我 这样,通过删除FireFox的空间 现在可以下载文件作为 ourfile.mj
Response.AddHeader "Content-Disposition", "attachment; filename=""our file.mj"""
Response.ContentType = "text/xml"