我一直在使用此代码<a href="FILEPATH">download PDF</a>
直接下载pdf链接,但此代码仅适用于Google Chrome
有人可以帮助我在Mozilla Firefox和IE8中完成这项工作。因为当我尝试在Mozilla Firefox中测试它时,它会打开链接,但不会弹出“另存为”窗口。
答案 0 :(得分:0)
我会使用PHP标头,因此请使用以下内容为url引用该文件:
<a href="/download.php?file=myFile.pdf">download PDF</a>
然后使用php来传递文件:
<?php
/* put some validation and injection protection here */
$approvedFiles = ["myFile.pdf","myOtherFile.pdf"];
if (!in_array($_GET['file'],$approvedFiles)){
header("HTTP/1.1 404 Not Found");
die();
}
//otherwise
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="myFile.pdf"');
readfile('myFile.pdf');
注意:伪代码并不完美:)
答案 1 :(得分:0)
<a id="save_data" href="">link</a>
window.URL = window.webkitURL || window.URL;
var a = document.getElementById('save_data');
var data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==';
var filename = 'qqq.pdf';
a.download = filename;
a.href = data;
a.textContent = 'Downloading...';
//release memory
a.onclick = function(e){
save_cleanup(this);
};
//force click
document.querySelector('#save_data').click();
function save_cleanup(a){
a.textContent = 'Downloaded';
setTimeout(function(){
a.href = '';
var element = document.getElementById("save_data");
element.parentNode.removeChild(element);
}, 1500);
};