0

我正在运行这个下载脚本,它允许人们单击一个按钮并下载一个文件,而无需打开任何新的 html 页面。这一切都很好。这是脚本。

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

但是,我真的希望能够同时运行 statcounter 脚本,以便记录谁在下载文件。当打开一个 html 页面并运行其函数时,Statcounter 脚本运行良好。但我不希望打开新页面。我只想开始下载。用户体验将是他们只有文件下载并且他们不知道 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 回答