如何使用HTML / JavaScript强制下载?

时间:2010-02-19 10:13:40

标签: html http file download response

我有一个链接,如果用户点击它,我需要做两件事:

  • 向用户发送正确的HTTP响应(特别是使用Content-Type: video/mp4
  • ,视频文件将自动开始下载。

我已经看过PHP的那种,但是只能用HTML / JavaScript吗?

3 个答案:

答案 0 :(得分:41)

您可以使用下载属性

<a href="http..." download></a>

或使用

指定文件名
<a href="http..." download="filename.pdf"></a>

了解详情:https://developer.mozilla.org/en/HTML/element/a#attr-download

答案 1 :(得分:2)

不,这是不可能的(至少对于限于客户端JavaScript的JavaScript值)。

如果要覆盖浏览器处理HTTP资源的默认行为,则需要使用HTTP标头。如果您想要正确执行此操作,请使用the content-disposition header(附件值)。

您可以使用server-side JavaScript或(几乎)任何其他服务器端环境设置此标头。

答案 2 :(得分:2)

自动将在很大程度上取决于浏览器及其选项。但是您可以通过响应中的Content-Disposition标题告诉浏览器您想要发生了什么(然后将与用户进行仔细检查)。例如,在大多数浏览器中,将其设置为attachment;filename=blah.mp4将邀请用户下载它(使用该文件名),即使浏览器通常会尝试在其自己的界面中显示/播放内容。请参阅链接了解详细信息。 (下载可能是mp4文件的默认设置,但这取决于用户;我发现这在为HTML文件提供下载链接时很有帮助。)

如果您没有使用服务器端脚本(正如您所说的那样),您可以在Web服务器中通过配置设置标头。例如,使用Apache,您可以使用与这些视频文件的URL匹配的规则,并使用Header directive