フォームボタンがあり、クリックするとフォームが送信されます。
同時に、ブラウザが PDF ファイルのダウンロードを開始します。どうすればこれができるのだろうか?PDF は通常、デフォルトでブラウザによって開かれますが、ブラウザでファイルを「名前を付けて保存」し、ファイルを開かないでください。これはhtmlのみを使用して実行できますか、それともjavascriptが必要ですか?
フォームボタンがあり、クリックするとフォームが送信されます。
同時に、ブラウザが PDF ファイルのダウンロードを開始します。どうすればこれができるのだろうか?PDF は通常、デフォルトでブラウザによって開かれますが、ブラウザでファイルを「名前を付けて保存」し、ファイルを開かないでください。これはhtmlのみを使用して実行できますか、それともjavascriptが必要ですか?
このプラグインを使用すると、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>
サーバー側で PHP を使用している場合は、これを試してください。これは、私の Web サイトの 1 つで実行されているテスト済みのコードです。
<?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();
}
?>
ブラウザは、ブラウザに表示せずにダウンロードするように求めます。
オプション 1: フォームの送信先の URL にダウンロードを返すようにすることができます。
オプション 2: ajax 呼び出しを使用してオンクリックでデータを送信し、window.location をダウンロード URL に設定します。
PDF をブラウザで開くかダウンロードするかは、制御できないクライアント側の設定です。
その場合、PDF を強制的にダウンロードするように Web サーバーを構成する必要があります。Apache を使用している場合は、この記事を参照してください -> http://www.thingy-ma-jig.co.uk/comment/7264
または、すべてのブラウザーをサポートする必要がない場合は、html5 のダウンロード属性を使用するだけで済みます -> http://updates.html5rocks.com/2011/08/Downloading-resources-in-HTML5-a-ダウンロード