我有一個表單按鈕,點擊它即可提交表單。在表單提交時自動「下載」PDF格式
我希望在同一時間,瀏覽器開始下載PDF文件。我想知道我該怎麼做?請記住,默認情況下,PDF通常是由瀏覽器打開的,但我希望瀏覽器「另存爲」文件,而不是打開文件。這隻能使用HTML嗎?還是我需要JavaScript?
我有一個表單按鈕,點擊它即可提交表單。在表單提交時自動「下載」PDF格式
我希望在同一時間,瀏覽器開始下載PDF文件。我想知道我該怎麼做?請記住,默認情況下,PDF通常是由瀏覽器打開的,但我希望瀏覽器「另存爲」文件,而不是打開文件。這隻能使用HTML嗎?還是我需要JavaScript?
如果你在服務器端使用PHP,試試這個。這是在我的一個網站上運行的測試代碼。
<?php
ob_start();
$file = 'YOUR-FILENAME-HERE.pdf';
if (file_exists($file))
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit();
}
?>
瀏覽器會提示下載而不顯示在瀏覽器中。
在這種情況下,您必須將您的網絡服務器配置爲強制PDF下載。 如果你使用Apache,您不妨看看這篇文章 - > http://www.thingy-ma-jig.co.uk/comment/7264
或者,如果你沒有支持所有瀏覽器,你可以只使用HTML5下載屬性脫身 - >http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-download
選項1:您可以讓表單提交的url返回下載。
選項2:使用ajax調用來提交數據onclick,將window.location設置爲您的下載url。
pdf是否在瀏覽器中打開或下載,是一種您無法控制的客戶端設置。
您可以使用this plugin使用javascript下載文件。
否則,在JavaScript中,你可以爲它編寫代碼。
$('a').click(function(e) {
e.preventDefault(); //stop the browser from following
window.location.href = 'downloads/file.pdf';
});
<a href="no-script.html">Download now!</a>
或者,你可以使用這個。
在PHP:
<?php
header('Content-type: application/pdf');
header('Content-disposition: attachment; filename=filename.pdf');
readfile("file.pdf");
?>
在Javascript中:
<body>
<script>
function downloadme(x){
winObj = window.open(x,'','left=10000,screenX=10000');
winObj.document.execCommand('SaveAs','null','download.pdf');
winObj.close();
}
</script>
<a href=javascript:downloadme('file.pdf');>Download this pdf</a>
</body>
你介意張貼一些代碼(哪怕它只是從文章複製代碼在這裏)?鏈接到其他文章本身並不是一個正確的答案。 – Nightfirecat