【问题标题】:How do you automatically download a file in javascript?你如何在javascript中自动下载文件?
【发布时间】:2016-08-22 13:26:36
【问题描述】:

所以,我一直在寻找并尝试找到一种方法,以便在有人访问我的网站时自动下载文件。我试过使用a标签下载,它可以工作,你只需要点击下载它。就这样……

<a href="pic.jpg" download>Download</a>

但我不希望那样。我希望它无需单击即可自动下载。我需要一些帮助!

【问题讨论】:

  • 所以你的意思是你的网站上不会有其他任何东西,只是当用户点击你网站的 url 时,文件应该被下载?
  • 抱歉 - 已回答但没有意识到您已经尝试了下载属性。不过,最好在服务器端完成,在提供文件时使用“Content-disposition: attachment”标头
  • 您可以在html上绑定一个函数下载并下载函数打开一个带有文件的窗口网址

标签: javascript html image download href


【解决方案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*/);
    

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多