English 中文(简体)
记录图像下载
原标题:
  • 时间:2008-09-16 09:11:27
  •  标签:

我正试图找到一种方法,找出谁在从图片库下载什么图片。用户可以使用缩略图旁边的按钮下载,也可以右键单击并使用“保存链接为”。是否可以将用户会话或ID与所有使用PHP或JavaScript的浏览器中的“将链接保存为”操作关联起来。

问题回答

是的,我更喜欢通过PHP来实现这一点。您必须设置一个脚本来加载文件并将其发送到用户浏览器。这个脚本还可以将下载记录在某个地方(例如您的数据库)。

例如,在非常粗略的伪代码中:

下载.php

$file = $_GET[ file ];
updateFileCount($file);
header( Content-Type: image/jpeg );
sendFile($file);

Then, you just have your download link point to 下载.php instead of the actual file. (Note that updateFileCount and sendFile are functions that you would have to provide, of course - this script is an example of a download script which you could use)

注意:我强烈建议避免使用$_GET[file]来获取整个文件名-恶意用户可能会使用它从您的web服务器检索敏感文件。但是PHP下载的安全使用是另一个问题的主题。

您需要像ImageDownload.php这样的网关脚本吗?picture=me.jpg,或者类似的东西。

该页面将返回图像字节,并记录图像已下载。

因为保存的图像在他们的本地计算机上,所以无法获得此类信息,因为他们已经从您的系统中检索到了图像。即使使用javascript,我知道你能做的最好的事情就是每次用户使用某种ajax y的东西按下第二个鼠标按钮时都进行日志记录。

我真的不喜欢这个想法,但如果你想在每次有人下载图像时登录,你可以在flash或java应用程序中托管图像,这就要求点击下载图像按钮。这样,他们在不这样做的情况下获得图像的唯一方法就是在数据包进入自己身边时捕捉数据包,或者截图。

您的服务器访问日志应该已经有了对该文件的非缩略图版本的请求,所以您只需要修改日志格式以包括sessionid,我认为您可以将其映射回用户。

我非常同意Phill Sacre提出的建议。因为你正在寻找的是这条路。

它还有一个好处,即可以将被跟踪的文件排除在直接的web路径之外,这样它们就无法直接链接到。

我在一个客户端网站上使用这种方法,那里的图像是付费内容,因此必须限制访问。





相关问题
热门标签