【问题标题】:Add mime type to HTML link将 mime 类型添加到 HTML 链接
【发布时间】:2011-01-07 18:59:40
【问题描述】:

我知道如何更改网络服务器中的 MIME 类型。我用它来确保浏览器下载我的 .scrpt 文件而不是打开纯文本版本。到目前为止一切顺利,但是否可以对链接做同样的事情?我想链接到 GitHub 上的文件,但这将作为纯文本文件打开。我可以在链接中添加“MIME 类型属性”来告诉浏览器下载文件吗?

这是我希望看到的:

<a mimetype="application/octet-stream" href="http://gist.github.com/raw/279094/39d5a2c1037288d5ee0ba1a17dca9edb368bbe42/RepairiPhotoDates.scpt">download</a>

【问题讨论】:

  • MIME 类型不能确定文件是否被查看或下载。由浏览器决定,基于 MIME 类型和 Content-Disposition 标头。
  • 我有同样的问题:我的托管公司没有设置我要提供的文件的 MIME 类型,并且无法更改。真的没有办法在 链接中告诉浏览器它要下载什么吗?

标签: html hyperlink stream mime href


【解决方案1】:

你可以指定type attribute,但是服务器发送的content-type是权威的。

此属性提供有关链接目标地址处可用内容的内容类型的建议提示。它允许用户代理选择使用回退机制,而不是在被告知他们将获取他们不支持的内容类型的内容时获取内容。

除此之外,不,你不能。

【讨论】:

  • 我试过这个,但它不起作用。正如您所解释的......感谢您的明确解释。
【解决方案2】:

HTML 不关心 HTTP 响应标头。这绝对是一个服务器端问题,必须在发送 HTTP 响应正文(/content?)之前在 HTTP 响应标头中解决。如果没有像 Ruby 或 PHP 这样的脚本语言,您将无能为力。

【讨论】:

  • 这不是服务器端问题,一些服务器(其余 API)货车从一个端点提供多种 mime 类型。所以你需要在前端解决这个问题。
【解决方案3】:

您能否设置一个中间人脚本,将相关文件下载到服务器,然后使用不同的 MIME 类型将其上传给用户?

【讨论】:

    【解决方案4】:

    是时候回答我自己的问题了。这是一个非常古老的问题,当时可能不可能,但从那时起发生了很多变化。 HTML5 规范添加了download 属性:

    <a href="hugepdf.pdf" download>Download file</a>
    

    这正是我需要的,告诉浏览器下载文件而不是打开它。感谢Jonathan Svärdén 解决了我多年前的问题!

    【讨论】:

    • @Cimm 你能告诉我如何在 web 服务器中更改 MIME 类型
    • @muthu 这取决于网络服务器。我建议你谷歌“ MIME type”并在 SO 上提出另一个问题,如果这不能解决你的问题。这不是问这个问题的地方。
    • 注意:由于对下载属性的支持,此解决方案并不适合所有人。你可以在这里查看caniuse.com/#search=download
    • 在 Edge 中,因此可能是 Chrome,您可以将预期下载的文件名(带或不带扩展名)提供给下载属性,如 &lt;a href="hugepdf.pdf" download="huge-pdf-by-cimm"&gt;Download file&lt;/a&gt;。这将以该名称下载文件。
    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2014-01-18
    相关资源
    最近更新 更多