2009-11-27 48 views

回答

4

簡短的回答是沒有:PDF的處理依賴完全在客戶端軟件上,從網絡瀏覽器到PDF閱讀器。您的服務器可以提供可供瀏覽器使用的提示(或不提供),但您無法用純HTML完成。

無論如何,你可能會配置你的web服務器發送適當的HTTP頭。如果您有應用程序/八位字節流威力更換應用/ PDF

<FilesMatch "\.(?i:pdf)$"> 
    ForceType application/pdf 
    Header set Content-Disposition attachment 
</FilesMatch> 

甚至繞過PDF插件:如果您正在使用Apache的,您可以使用的.htaccess文件 - 如果安裝(但不保證)。

其他網絡服務器將需要不同的配置。

+0

我正在使用aspnet。我應該添加在web.config? – Nila 2009-11-27 11:35:39

2

不能強制這種行爲只使用純html。

服務器需要發送一個Content-Disposition: attachment;filename=x.pdf頭來實現這一點。

3

您應該更改由服務器發送給客戶端的頭並添加類似內容。

Content-Disposition: attachment; filename="downloaded.pdf" 

它可以通過代理php腳本或通過配置您的網絡服務器來完成。

+1

抓好提'filename':或者,如果你把它空的,這樣它會默認爲文件名的服務器端。當對一個URL的HTTP請求(例如, 'http://example.com/download.php?stuff.pdf'彈出一個「另存爲」對話框,希望將下載的PDF文件保存爲'download.php'。在這些情況下,請*發送'filename = stuff.pdf'。 – ndim 2009-11-27 11:24:30

0

我不認爲你CAND從HTML做到這一點...這是通過頭文件來完成, 你可以修改它們無論是在後臺的語言或通過Apache頭

0

我見過阿爾瓦羅的提示在網上公佈

<FilesMatch "\.(?i:pdf)$"> 
    ForceType application/pdf 
    Header set Content-Disposition attachment 
</FilesMatch> 

左右,但由於某種原因,幾個不同的地方,當我加入這一個.htaccess文件,我得到一個內部服務器錯誤500人有一個想法爲什麼這可能會發生?

UPDATE:想通了這一點 - 你需要安裝Apache的頭模塊:

# a2enmod headers 
0

我知道這是一個老問題,但它是值得一提的是許多現代瀏覽器都支持download屬性的鏈接,這可以這樣使用:

<a href="/path/to/mydownload.pdf" download> 
1

在Chrome和Firefox上測試,就像一個魅力!

<a href="./directory/yourfile.pdf" download="newfilename">Download the pdf</a>

哪裏newfilename是爲用戶保存文件的文件名建議。

<a href="./directory/yourfile.pdf" download>Download the pdf</a>

+0

您確定可以下載PDF文件嗎? – HebleV 2017-04-18 13:25:09