我的页面中有<img download>
标记。每次用户点击它,文件都会下载。
我可以跟踪此<img>
标记的点击次数,并将其存储在数据库中以获取下载的跟踪数量。
但是如果用户取消下载文件提示(选择下载文件的位置)该怎么办,
如何跟踪用户是否实际正在下载文件?
答案 0 :(得分:2)
您需要为该文件使用代理。说这样的PHP文件:
<?php
$file = $_GET["file"]; // Get the file.
header("Content-disposition: attachment"); // And other headers for the file.
echo file_get_contents($file); // Start the file.
// Update the counter.
file_put_contents(intval(file_get_contents("count.txt")) + 1, "count.txt");
?>
值得注意的是,此// Update
代码仅在发送请求时执行,并且文件已完全下载。如果我错了,请纠正我。
如果请求已发送并且代码已执行,抱歉,Google Chrome和Firefox会在“保存”对话框出现时开始下载文件,这意味着,当“保存”对话框打开时,文件已经启动下载和点击取消时,用户无法获取文件,但服务器已收到请求,因此就像下载文件并删除它一样。
注意: 在一些天才来之前说,这很容易受到攻击,
file-name
丢失等等,让我告诉你,这只是一个帮助OP的想法。