你如何在javascript中自动下载文件?
Posted
技术标签:
【中文标题】你如何在javascript中自动下载文件?【英文标题】:How do you automatically download a file in javascript? 【发布时间】:2016-08-22 13:26:36 【问题描述】:所以,我一直在寻找并尝试找到一种方法,以便在有人访问我的网站时自动下载文件。我试过使用a标签下载,它可以工作,你只需要点击下载它。就这样……
<a href="pic.jpg" download>Download</a>
但我不希望那样。我希望它无需单击即可自动下载。我需要一些帮助!
【问题讨论】:
所以你的意思是你的网站上不会有其他任何东西,只是当用户点击你网站的 url 时,文件应该被下载? 抱歉 - 已回答但没有意识到您已经尝试了下载属性。不过,最好在服务器端完成,在提供文件时使用“Content-disposition: attachment”标头 您可以在html上绑定一个函数下载并下载函数打开一个带有文件的窗口网址 Download a file using javascript的可能重复 【参考方案1】:如果它是一个实际文件(不会像 JPG 文件那样简单地显示在您的浏览器中),那么您可以使用 javascript 或元重定向。
<script> document.location.href = 'yourfile.exe'; </script>
或
<meta http-equiv="refresh" content="0; url=yourfile.exe">
但我想知道您是否在谈论用户被询问是否要打开或保存文件(无论是 JPG 还是其他文件?)
【讨论】:
【参考方案2】:另一种方法:
var a = document.createElement('a');
a.setAttribute('href', dataUri);
a.setAttribute('download', filename);
var aj = $(a);
aj.appendTo('body');
aj[0].click();
aj.remove();
【讨论】:
很高兴看到这两种方法。上述方法不会在浏览器中打开 .jpg 或 .pdf !太棒了 这个解决方案太优雅了!【参考方案3】:另一个纯 javascript 选项是:
const downloadFile = (file) =>
const element = document.createElement('a');
element.setAttribute('href', 'Download Btn');
element.setAttribute('download', file);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
然后你可以在加载时调用函数:
downloadFile(/*pass your file here*/);
【讨论】:
以上是关于你如何在javascript中自动下载文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Javascript中创建动态文件+链接以供下载? [复制]