下載文件鏈接可能重複:
open download dialog with php生成PHP
我在我的網頁上的鏈接說,<a href='test.pdf'>(Test.pdf)</a>
。 當我點擊該鏈接時,應打開下載對話框以下載該文件。 任何人都可以幫助我在PHP中實現這一點?
感謝
下載文件鏈接可能重複:
open download dialog with php生成PHP
我在我的網頁上的鏈接說,<a href='test.pdf'>(Test.pdf)</a>
。 當我點擊該鏈接時,應打開下載對話框以下載該文件。 任何人都可以幫助我在PHP中實現這一點?
感謝
$filename = 'Test.pdf'; // of course find the exact filename....
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false); // required for certain browsers
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'. basename($filename) . '";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($filename));
readfile($filename);
exit;
名稱上述文件作爲download.php
HTML:
<a href="download.php">Test.pdf</a>
應該這樣做。
下載的pdf文件不會打開它說文件沒有正確解碼? – 2012-12-11 12:32:28
它適用於我 – 2015-06-21 04:35:38
@JacobRelkin快速的問題。你可以傳遞參數嗎?像download.php?filecode = 1234並使用它們來填充標題功能?或者在任何其他調用之前必須調用標頭。例如:''''$ filename = $ _get ['filecode']'''' – Caperneoignis 2016-10-04 13:08:07
<a href="test.pdf">test.pdf</a>
對於PDF文件,大多數瀏覽器默認都會尋找助手(acrobat)在瀏覽器中加載它。你試圖繞過這個默認行爲是我的猜測。
要做到這一點最簡單的方法(假設你在使用Apache * nix中盒)是使在目錄中,您希望有這樣的結果,並添加行.htaccess文件:
將AddType應用/ octet-stream .pdf
這將導致任何帶有擴展名.pdf的文件默認下載。您甚至可以在瀏覽器中加載一些.pdf文件,而其他人則可以使用FilesMatch指令(http://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess.html)進行下載。
我意識到你原來的問題說:「我該怎麼用PHP來做」,但我想我會張貼,以防你正在尋找一個更簡單,更優雅的解決方案。請記住,您放在.htaccess文件中的任何指令也會影響其下的任何子目錄。
你在這裏:http://stackoverflow.com/questions/985083/open-download-dialog-with-php http://stackoverflow.com/questions/732063/how-to-show-save-as- dialog-box-using-php-for-text-files – codaddict 2009-12-28 05:34:12
這不是這些問題的重複。他們想要生成一個下載對話框,這個人希望鏈接強制下載而不是在瀏覽器中打開文件。 html5下載屬性可以做到這一點:' – sidonaldson 2016-05-09 10:11:08