ブラウザをリダイレクトして別のページでpdfを開くのではなく、サーバーからpdfをダウンロードするためのリンクを配置しようとしています。多くのサイトでそのようなオプションを見てきましたが、コードを取得できません。そして、ほとんどの人はそれがphpでのみ可能であると言っています.誰かが私を助けてくれます.
質問する
419 次
4 に答える
5
次のコードを使用して、php ページにリダイレクトします。
$path_to_file = '/var/www/somefile.pdf'; //Path to file you want downloaded
$file_name = "somefile.pdf"; //Name of file for download
header('Pragma: public'); // required
header('Expires: 0'); // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.$file_name.'"');
header('Content-Transfer-Encoding: binary');
readfile($path_to_file);
die();
于 2012-09-24T13:10:58.627 に答える
3
またはこれを含めることができます.htaccess
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
于 2012-09-24T13:09:19.773 に答える
0
http ヘッダーを変更できる場合があります。
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"lol.pdf\"");
そのようです。ただし、一部のブラウザでは、セキュリティ上の理由からこれを実際に防止しています。
編集
はっきりしないことに気づいたからです。これらのヘッダーは、実際にファイルを読み取り、これらのヘッダーを使用してブラウザーに送信する別のページから送信されます。
リンクはhref
、ファイルを読み取ってヘッダーを送信するこの PHP ページへの属性を指します。
于 2012-09-24T13:10:12.590 に答える
0
PHPから
header("Content-Type: application/octet-stream");
header("Content-Disposition:attachment;filename=myfile.pdf");
そして、ファイルの内容
またはApacheから
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
于 2012-09-24T13:11:59.640 に答える