2011-03-16 153 views
0

我想獲取文件(即。pdf,excel,word文檔等)打開下載框中。由於某些原因,excel文件正常工作,但其他人都無法正常工作。我想我需要使用JavaScript設置頁眉(我相信,jquery沒有這樣做的核心功能,但糾正我,如果我錯了)。這裏是我的代碼示例。強制word文檔,pdf,xls等下載通過點擊鏈接jquery

$(function() { 
    $('a.media-link').click(function(event){ 
     var fileName = $(this).html(); 
     var property_id = $("input[name=capturePropId]").val(); 
     //alert(fileName); 
     event.preventDefault(); //stop the browser from following 
     window.location.href = '../uploads/properties/'+ 
     property_id+'/media/'+fileName+''; 
     response.setHeader("Content-Disposition", "attachment; 
     filename=\"" + fileName + "\""); 
    }); 
}); 

當我這樣做我得到一個錯誤「response.setHeader響應undefinded。沒有任何人有什麼想法?

回答

1

您需要設置不同的標題,每種文件類型。看看here

1

您無法使用JavaScript更改服務器響應,也無法控制瀏覽器如何決定在選擇此新窗口之外打開新鏈接。由服務器決定要爲您的請求返回哪些內容 - 即它可以針對所有請求或任何其他類型的響應以相同的JPG圖像進行響應。

您需要將代碼設置爲提供請求的服務器上的標頭。如果您的服務器是ASP.Net,則代碼正確(http://support.microsoft.com/kb/260519)。

+0

好吧,我和你在一起。我想我很困惑在我的PHP文件中我需要設置標題的位置。也許我的文件太混雜了不同的語言。我有jQuery的標籤去jQuery的幻燈片去從數據庫中的各種數據。這可能不會幫助你更好地理解爲什麼我仍然不能理解這個概念,但它可能。我明白如何以你的方式做到這一點,如果我提交表單,但我不明白如何設置錨標記的標題。 – 2011-03-16 18:11:46

+0

您不能在JavaScript中設置設置標題,並且在服務器端設置標題以生成帶有鏈接的頁面將無濟於事。您需要在服務器上設置返回文件的Url處理程序。在你的情況下,它看起來像你需要../uploads/properties/XXX/media/FILE.NAME Url被你的服務器代碼(PHP)處理,並返回文件流與額外的頭。 – 2011-03-16 18:29:06