【问题标题】:Displaying images and documents using asp.net across several browsers在多个浏览器中使用 asp.net 显示图像和文档
【发布时间】:2010-02-02 15:42:56
【问题描述】:

我有一个名为 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 兼容 - 有什么建议吗?

【问题讨论】:

    标签: asp.net firefox


    【解决方案1】:

    您提到的 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 现在可以将文件下载为 “我们的文件.mj”。 ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      相关资源
      最近更新 更多