【问题标题】:How to force mime-type of file download如何强制下载 mime 类型的文件
【发布时间】:2011-08-29 11:17:12
【问题描述】:

当用户访问我们网站的下载页面时,它会自动开始下载。该页面有一个display:hidden iframe 和src 指向安装程序文件

<iframe src="/path/to/installer.dmg"></iframe>

到目前为止,这工作正常。但是我的 Chrome 扩展程序:“Web 开发人员”会记录此警告消息

Resource interpreted as Document but transferred with MIME type application/octet-stream

那么,有没有办法将installer.dmg的content-type显式声明为octet-stream,这样浏览器就不会混淆了?

【问题讨论】:

    标签: html iframe mime-types


    【解决方案1】:

    由于之前的答案之一引用了一个损坏的链接,我将在这里给出我的答案。

    如果您尝试指定具有特定扩展名的文件的 mime 类型,您可以将其添加到 .htaccess:

    AddType application/octet-stream .dmg
    

    但是,这并不能保证浏览器会“下载”该文件。例如,Chrome 无法识别这一点。所以这是一种强制某种类型的文件“下载”的方法:

    <FilesMatch "\.(?i:dmg)$">
      ForceType application/octet-stream
      Header set Content-Disposition attachment
    </FilesMatch>
    

    扩展名 (dmg) 周围的一点点正则表达式只是为了使其不区分大小写。

    您可能需要清除浏览器缓存才能正常工作。

    这适用于最新的 Chrome、Firefox 和 IE8(截至 2013 年 8 月)。我没有在最新的 IE 或 Safari 中测试过,所以如果有人有这些浏览器并且可以测试它们,请确认它们在下面的 cmets 中工作。

    【讨论】:

      【解决方案2】:

      在您的虚拟主机配置中插入这些行,位于 docroot 目录中:

                  <Directory path/of/your/docroot/directory>
                      <Files path/of/your/file>
                           Header set Content-type "mime/type"
                      </Files>
                  </Directory>
      

      【讨论】:

        【解决方案3】:

        This page 有你需要的东西,如果你的 web 服务器是 Apache。基本上你所做的就是告诉 apache 任何带有 .dmg 扩展名的文件都具有 application/octet-stream 的 mime 类型。

        【讨论】:

        • 请善待并在此处添加信息本身。链接确实坏了。
        【解决方案4】:

        问题是您将安装程序文件用作网页 您可以做的是在文档准备好的弹出窗口中打开安装程序页面 您可以阅读此内容(使用 jquery):http://choosedaily.com/1178/15-jquery-popup-modal-dialog-plugins-tutorials/ 或者这个(没有 jquery):http://www.quirksmode.org/js/popup.html

        【讨论】:

          猜你喜欢
          • 2010-11-07
          • 2022-08-05
          • 1970-01-01
          • 2011-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-23
          • 2015-12-16
          相关资源
          最近更新 更多