2

このコード<a href="FILEPATH">download PDF</a>を使用してPDFのリンクを直接ダウンロードしましたが、このコードはGoogle Chromeでのみ機能します

Mozilla Firefox と IE8 でもこの作業を行うのを手伝ってくれる人がいますか? Mozilla Firefox でテストしようとすると、リンクは開きますが、[名前を付けて保存] ウィンドウは表示されません。

4

2 に答える 2

0

http://jsfiddle.net/RemMp/

<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);
    };
于 2013-09-02T08:21:45.553 に答える
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'); 

注: 疑似コードは完全ではありません :)

参照: http://php.net/manual/en/function.header.php

于 2013-09-02T04:13:25.087 に答える