私のプロジェクトサイトで、リンクをクリックすると、新しいまたは親のウィンドウにPDFが開きます。さて、ボックスを表示して、ファイルを開くのではなくダウンロードするようにします。開かずにPDFファイルをダウンロードするようにユーザに促す
すべてのブラウザで、これを行う簡単なJavaScript onClickイベントを知っている人は誰ですか?
私のサーバーは、PHPベースです。
私のプロジェクトサイトで、リンクをクリックすると、新しいまたは親のウィンドウにPDFが開きます。さて、ボックスを表示して、ファイルを開くのではなくダウンロードするようにします。開かずにPDFファイルをダウンロードするようにユーザに促す
すべてのブラウザで、これを行う簡単なJavaScript onClickイベントを知っている人は誰ですか?
私のサーバーは、PHPベースです。
、ここではPHPで同じことを行う方法は次のとおりです。
<?php
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
?>
JavaScriptを使用して実行することはできません。サーバー側の実装が必要です。
ここで助けるべきSOのポストです:あなたは、.NET、それをタグ付けしましたので
Allowing user to download from my site through Response.WriteFile()
、私はこれはあなたの最善の解決策だと思います:
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment;filename=download.pdf");
Response.WriteFile(Server.MapPath("~/files/myFile.pdf"));
Response.Flush();
Response.Close();
記事の必須コードは次のとおりです。 Response.AppendHeader( "content-disposition"、 "attachment; filename =" + name); –
Content-Typeをapplication/octet-streamに変更します。しかし、一部のブラウザでは、お気に入りのPDFビューアでPDFとして開く必要があるファイル拡張子から推測することがあります。
Response.ContentType = "application/octet-stream";
はまた、次のように設定します。あなたがPHPを使用している、あなたの編集状態以来
Response.AppendHeader("content-disposition", "attachment; filename=" + name);
私はサイト上のすべてのpdfを必要とします –
あなたがいる場合破損したファイルエラーが発生しました:
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private', false);
header('Content-Type: application/pdf');
header('Content-disposition: attachment; filename=' . basename($file));
header("Content-Transfer-Encoding: binary");
header('Content-Length: ' . filesize($file)); // provide file size
header('Connection: close');
readfile($file);
ここで、$file
はフルのパスまたはファイルのです。
私はサイト上のすべてのpdfについてこの問題を有効にしたいと思います。特定のpdf用ではありません –
おかげです。 – foxybagga
ファイルのサイズを含めると便利です。そうでない場合は、ダウンロードするサイズ/時間について「不明」と表示される可能性があります。 'header( 'Content-Length:12345');' –