2011-12-30 35 views
1

我有PDF文件的網址。我需要在頁面上有一個鏈接,這樣當用戶點擊鏈接時,他們會看到「另存爲」對話框。使用PHP和/或JavaScript的「另存爲」對話框

我找到了solution using an iframe,但是如果用戶安裝了PDF插件,則「另存爲」對話框不會顯示出來。

是否有任何其他方式向用戶顯示「另存爲」對話框?

對不起,我忘記提及,用戶點擊鏈接後,請求將由ajax發送。這將是PDF文件網址的發佈請求。在這個請求的結果中,我將知道是否存在PDF文件,現在我想顯示用戶另存爲對話框而不是在瀏覽器中打開它。

+1

你嘗試了'頭()'答案在那裏? – jprofitt 2011-12-30 13:14:38

+0

這是[鏈接到的問題]的確切副本(http://stackoverflow.com/questions/6699461/forcing-save-as-dialog-via-jquery-get),尊重你只是沒有閱讀足夠小心的答案。這個問題中的 – 2011-12-30 13:29:37

+0

我的意思是什麼,對於我的情況沒有任何正確的答案。 我在想,.htaccess可以幫助我。 我現在有什麼主要的問題 - 當我使用iframe的方式加載到它的pdf文件,因爲我已經安裝了pdf插件。 而且似乎我只有一次機會來改變這種情況 - 我需要通過Apache發送所需的頭文件。 – user1016265 2011-12-30 19:43:22

回答

2

有一個PHP的方式,您需要將用戶重定向到PHP文件,其中將包括的內容,並通過一些標題:

header('content-type: application/x-pdf'); 
header('content-disposition: attachment; filename=yourfile.pdf'); 
readfile('yourfile.pdf'); 

這應該克服大多數,如果不是所有的怪異瀏覽器的舉措。如果你仍然使用插件而不是保存對話框,那麼你可以做更多的事情。

祝你好運

0

你不想通過ajax發送POST。取而代之的是,如this answer所述,將iframe發佈到您找到的問題中,然後使用Content-Dispostion標題告訴瀏覽器如何處理它,如this answer中所述。

(標記這個「社區維基」,因爲真正的問題是隻是一個重複。)