下载计数器功能不准确

时间:2015-12-04 20:00:32

标签: php mysql laravel nginx

我们正在使用普通的PHP下载脚本(带标题等)来向用户提供文件。

但问题是,对于某些浏览器和大量下载,会多次请求下载脚本。 NGINX日志显示206状态代码的请求(建议分块流?)这很奇怪,因为我们不提供任何可流媒体内容?

无论如何,这意味着多次请求下载脚本,因此每次下载时,该文件的下载计数器的+ 1的MySQL功能将被运行多次。

我们尝试使用会话,但看到下载已从外部服务器+域切断,我们无法在设置后清除所述会话。

我们正在使用Laravel与NGINX + MySQL,任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

查看最终会产生206响应的请求的规范和标题,有一个标题突然出现,看起来很完美。

有问题的标题是Content-Range标题,如下所示:

Content-Range: bytes 21010-47021/47022

这是说它想要从47022字节中获取字节21010-47021。所有你需要担心的是这里的第一个数字,如果它是0或不是。如果标题已设置且第一个数字为0,您可以假设它刚刚开始下载,您应该增加计数器。