我需要从我们的一个在线资源中下载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。相反,它不会在加载或刷新时执行任何操作。 有什么建议吗?
答案 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)
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
锚点上的下载属性被忽略,因为其href URL具有不同的安全来源。