2013-07-24 139 views
0

我有一個gridview,其中有一列用於下載每行的pdf文件。 我激活了一個使用「window.location.href」從另一個頁面創建和下載PDF文件的JavaScript函數。 現在,在一些按鈕的Clientclick上,我調用了一個JavaScript函數,其中for循環讀取gridview的每一行並激發單擊事件(用於網格下載PDF的按鈕),以便一次下載多個PDF文件行。 通過使用這種技術,我只獲取PDF的最後一行的細節,這是M每行觸發點擊事件後只獲得一個PDF。從javascript下載多個PDF文件

回答

1

我做到以下幾點:

  1. 附上exchanger.js javascript文件在你的腦袋節
  2. 初始化頁面加載的交換對象:theBuffer = new exchanger('dwnld');
  3. 創建一個JavaScript函數,你會打電話每當你想要發起文件下載 :

    function downloadFile(){ 
         // you can add parameters to the function as needed to pass in dynamic data sent to the back end download handler 
         data = "http://your_backend_file_download_handler.php?param1=val1&param2=val2&etc=whatever"; // send whatever data you need to the php program via query string parameters 
         theBuffer.sendData(data); // initiate the file download 
    } 
    

    注意:處理請求的php後端文件下載程序可以完成它所需的任何操作,以便將您發送的參數用於放置/檢索正確的數據/文件以進行下載。經過多少修補之後this combination是一貫爲我工作的東西

  4. 在你的身體部分包含這一點點的html。我通常把它剛剛結束標記之前:

    <iframe name="dwnld" id="dwnld" style="width:0;height:0;border:0"> 
    </iframe> 
    
    Note: the id value assigned to the iframe is the same value given in step 2 when initializing. 
    

結果是用戶永遠不會離開當前頁面下載任意數量的文件,因爲實際的下載是一個單獨的頁面處理(又名iframe)。多年來,我在所有項目中都沒有使用過它。

+0

什麼應該在我的''http:// your_backend_file_download_handler.php'?它應該怎麼做? – 1252748

+0

@thomas後端處理程序將完全是我在我的回答你的問題放在這裏的PHP代碼:http:// stackoverflow.com/questions/18131797/adding-header-will-not-make-a-file-download/18131908?noredirect=1#comment26554996_18131908 – Drew