2009-10-02 74 views
6

當用戶單擊「下載PDF」鏈接,謹供下載提示,顯示爲用戶能夠下載該文件。如何創建一個觸發文件下載的鏈接?

目前,用戶只是轉移到PDF文件的地址。

例如:

<a..[what goes here??]..>Download PDF</a> 

似乎有JavaScript的& PHP這樣做需要的組合。

誰能舉個例子?

回答

6

如果你在Apache,你可以將這個到你的.htaccess:

<Files *.pdf> 
    Header set Content-Disposition attachment 
</Files> 

這將發送所有PDF文檔的下載。mod_headers必須啓用。

+0

這就是我正在尋找的,謝謝! – edt 2009-10-03 15:47:39

+0

不客氣。 :) – middus 2009-10-04 11:26:05

+0

還有一個'download'屬性。 (不確定哪些瀏覽器支持此功能,但可以添加它。) – Darkwater 2012-10-05 18:37:35

0

目前尚不清楚你的意思是由

目前,用戶只是轉移到PDF文件的地址。

但我認爲一個簡單的方法:

<a href='http://example.com/download.pdf'>Download PDF</a> 

選擇下載開放文件更多的是瀏覽器的設置。

1

您可以強制瀏覽器通過添加HTTP頭到Web服務器響應鏈接的內容保存:

Content-Disposition: attachment; filename=<default filename to save as> 

在另一邊,我真的不明白這一點在覆蓋用戶的瀏覽器配置,這通常會告訴如果PDF文件應每默認在瀏覽器中打開,在一個單獨的PDF查看器中打開或保存到磁盤。

+0

雖然我同意,一般來說,用戶的偏好應該得到尊重,但我可以想到至少有一種情況應該鼓勵他們下載文件,而不是在瀏覽器中查看它:他們可能應該保存一份副本,如在線保險單或類似文件。 – 2010-08-02 13:06:02

0

我不相信這是一個神奇的JavaScript/PHP解決您的問題,香草HTML:

<a href="docco.pdf" title="this is a link to a pdf">download the PDF</a> 

會做需要什麼,它會直接在瀏覽器請求的資源「docco。 pdf「,這取決於瀏覽器(和任何插件)對此做些什麼。

例如,有一個Firefox插件「PDF download」,它提供了用戶如何處理一個彈出做的選擇。

7

重定向到與此代碼PHP頁面上:

<?php 
header('Content-disposition: attachment; filename=movie.mpg'); 
header('Content-type: video/mpeg'); 
readfile('movie.mpg'); 
?> 

<a href代碼將需要指向一個特定的頁面,ReadFile的會打電話給你的資源

Further reading

剛作爲一個側面說明,我不同意,你不應該重寫瀏覽器的設置,但有時當老闆問,你只需要做。

1

您可以在標籤上使用HTML5 download屬性。

<a href="http://love4cats.com/kitten-catalogue.pdf" download>Download the CATalogue</a> 

您應該檢查您的分析並確保您的目標瀏覽器支持該屬性。瀏覽器支持請參閱caniuse.com entry頁面。

2
You can also use the following code: 

<?php 
$file = filter_input(INPUT_GET, 'file'); 
$filename = basename($file); 
header("Content-Type: application/force-download"); 
header("Content-Disposition: attachment; filename=\"{$filename}\";"); 
readfile("your file path {$file}"); 
?> 

這將促使任何文件擴展名,如(.PDF,.DOCX,.ZIP,.CSV,.TXT和.html,.php然後...等),而不直接打開進入新的瀏覽器。