我正试图找到一种方法来找出谁从图库中下载了什么图像。用户可以使用缩略图旁边的按钮下载或右键单击并使用“保存链接为”。是否可以将用户会话或ID与使用PHP或JavaScript的所有浏览器的“保存链接为”操作相关联。
答案 0 :(得分:1)
是的,我首选的方法是通过PHP。您必须设置一个脚本来加载文件并将其发送到用户浏览器。此脚本还可以在某处(例如您的数据库)记录下载。
例如 - 在非常粗略的伪代码中:
的download.php
$file = $_GET['file'];
updateFileCount($file);
header('Content-Type: image/jpeg');
sendFile($file);
然后,您只需将下载链接指向download.php而不是实际文件。 (注意updateFileCount和sendFile是你必须提供的函数,当然 - this script是你可以使用的下载脚本的一个例子)
注意:我强烈建议避免使用$ _GET ['file']来获取整个文件名 - 恶意用户可以使用它从Web服务器检索敏感文件。但安全使用PHP下载是另一个问题的主题。
答案 1 :(得分:0)
你需要一个网关脚本,比如ImageDownload.php?picture = me.jpg,或类似的东西。
该页面将返回图像字节,以及记录下载图像。
答案 2 :(得分:0)
由于保存的图像在本地计算机上,因此无法获取该类信息,因为他们已经从您的系统中检索了图像。即使使用javascript,我知道您可以做的最好的事情是每次用户使用某种ajax'y东西按下第二个鼠标按钮时记录。
我真的不喜欢这个想法,但是如果你想每次有人下载图像时都要记录,你可以在闪存或java应用程序中托管图像,这样就需要点击下载图像按钮。这样,他们获取图像的唯一方法就是在他们进入他们身边时捕获数据包或截取屏幕截图。
答案 3 :(得分:0)
您的服务器访问日志应该已经有了对该文件的非缩略图版本的请求,因此您只需要修改日志格式以包含sessionid,我认为您可以将其映射回用户。
答案 4 :(得分:0)
我同意Phill Sacre提出的建议。对于你正在寻找的东西,这是要走的路。
它还具有以下优点:可以将跟踪的文件保留在直接Web路径之外,以便它们不能直接链接到。
我在客户端网站中使用此方法,其中图片是付费内容,因此必须限制访问。