0

このダウンロード スクリプトを実行して、ユーザーがボタンをクリックして、新しい HTML ページを開かなくてもファイルをダウンロードできるようにしています。それはすべてうまくいきます。これがスクリプトです。

<?php
header('Content-disposition: attachment; filename=brochure-company-details.pdf');
header('Content-type: pdf');
readfile('brochure-company-details.pdf');
?>

ただし、誰がファイルをダウンロードしているかを文書化するために、同時に statcounter スクリプトを実行できるようにしたいと考えています。Statcounter スクリプトは、html ページを開いてその機能を実行するときに十分に機能します。しかし、私は新しいページを開いてほしくありません。ダウンロードを開始したいだけです。ユーザー エクスペリエンスは、ファイルをダウンロードするだけで、statcounter がイベントを記録することを知らずに済みます。

手伝ってくれますか?

4

1 に答える 1

1

あなたが望むことは不可能です。(pdfダウンロード時にjavascriptを実行) Statcounterはスクリプトで、htmlに含めることでブラウザ上で実行されます。PDF ファイルをダウンロードする場合、js を実行していません。

ただし、statcounter はどのリンクが押されているかを確認できるため、ダウンロードされたファイルを見つけることができます。statcounter が含まれている html の通常のリンクを使用してファイルをダウンロードする限り。何もする必要はありません。デフォルトでカウントされます。

Dachi が与えたアイデアは、あなたの php コードに sql 挿入を追加することです。

<?php
$dbh = new PDO("sqlite:/path/to/database.sdb");
//Put the insertion code here. 
//Insert things like the IP, the login name, the time, etc. 
header('Content-disposition: attachment; filename=brochure-company-details.pdf');
header('Content-type: pdf');
readfile('brochure-company-details.pdf');

これも機能し、通常のリンクを使用せずにダウンロードを許可している場合、または statcounter を含む html からダウンロードを許可していない場合に適しています。

于 2013-09-01T04:05:54.533 に答える