如何使用javascript从网址下载pdf?

时间:2019-05-03 05:55:11

标签: javascript html

我需要从我们的一个在线资源中下载pdf文件,没有内置的功能可以批量下载。唯一的方法是导航到每个pdf文件,单击以打开,然后单击下载。 有数千个文件,这将花费很长时间。 我过去使用javascript解决了这个问题。我收集了所有指向pdf的链接,将它们放在csv中,并通过每个链接进行代码循环,下载并移至下一个链接。

不幸的是,我丢失了该代码,并且我对其进行重新创建的尝试均未成功。

我已经尝试了本文中的所有内容:How to download PDF automatically using js?

我已经尝试了本文中的代码(我很确定这是我之前所做的):https://www.convertplug.com/plus/docs/download-pdf-file-forcefully-instead-opening-browser-using-js/

这是我认为应该起作用的方法……根据我在上面引用的第二篇文章

function download_file(fileURL, fileName) {
var link = document.createElement('a');
link.href = fileURL;
link.download = 'file.pdf';
link.dispatchEvent(new MouseEvent('click'));
}
var fileURL = "link/to/pdf";
var fileName = "test.pdf";
download(fileURL,fileName);

以上代码仅用于测试从硬编码URL下载一个文件。如果可以正常工作,则在加载页面时,应从提供的URL下载pdf。相反,它不会在加载或刷新时执行任何操作。 有什么建议吗?

2 个答案:

答案 0 :(得分:0)

请检查 https://stackoverflow.com/a/18983688/6923146

<a href="http://www.africau.edu/images/default/sample.pdf" download="sample.PDF">click me</a>

另一个 https://stackoverflow.com/a/45905238/6923146

function download(url, filename) {
fetch(url).then(function(t) {
    return t.blob().then((b)=>{
        var a = document.createElement("a");
        a.href = URL.createObjectURL(b);
        a.setAttribute("download", filename);
        a.click();
    }
    );
});
}

download("https://get.geojs.io/v1/ip/geo.json","geoip.json")
download("data:text/html,Hello Developer!", "HelloDeveloper.txt");

希望对您有帮助

https://www.convertplug.com/plus/docs/download-pdf-file-forcefully-instead-opening-browser-using-js/

答案 1 :(得分:0)

  1. 您必须将链接元素添加到DOM

function download_file(fileURL, fileName) {
  var link = document.createElement('a');
  link.href = fileURL;
  link.download = fileName;
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
}

var fileURL = "https://cdn.sstatic.net/clc/img/jobs/bg-remote-header-sm.png";
var fileName = "test.pdf";
download_file(fileURL, fileName); // fix function name

  1. 链接必须来自同一来源
      

    锚点上的下载属性被忽略,因为其href URL具有不同的安全来源。

相关问题