单击 HTML 按钮或 JavaScript 时如何触发文件下载

新手上路,请多包涵

这很疯狂,但我不知道该怎么做,而且由于这些词很常见,很难在搜索引擎上找到我需要的东西。我想这应该是一个容易回答的问题。

我想要一个简单的文件下载,它会做同样的事情:

<a href="file.doc">Download!</a>

但我想使用 HTML 按钮,例如:

<input type="button" value="Download!">
<button>Download!</button>

同样,是否可以通过 JavaScript 触发简单下载?

$("#fileRequest").click(function(){ /* code to download? */ });

我绝对 不是 在寻找一种方法来创建一个看起来像按钮的锚,使用任何后端脚本,或者弄乱服务器标题或 mime 类型。

原文由 brentonstrine 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 975
2 个回答

对于按钮你可以做

<form method="get" action="file.doc">
 <button type="submit">Download!</button>
 </form>

原文由 Cfreak 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 HTML5 download 属性触发下载。

 <a href="path_to_file" download="proposed_file_name">Download</a>

在哪里:

  • path_to_file 是解析为 同源 URL 的路径。 这意味着页面和文件必须共享相同的域、子域、协议(HTTP 与 HTTPS)和端口(如果指定)。例外情况是 blob:data: (始终有效)和 file: (永远无效)。
  • proposed_file_name 是要保存到的文件名。如果为空,则浏览器默认为文件名。

文档: MDN关于下载HTML 标准,关于 download 的 HTML 标准, CanIUse

原文由 Joe Pigott 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题