4

ブラウザをリダイレクトして別のページでpdfを開くのではなく、サーバーからpdfをダウンロードするためのリンクを配置しようとしています。多くのサイトでそのようなオプションを見てきましたが、コードを取得できません。そして、ほとんどの人はそれがphpでのみ可能であると言っています.誰かが私を助けてくれます.

4

4 に答える 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 に答える