【问题标题】:Php Tracking Large File Download Countphp跟踪大文件下载次数
【发布时间】:2017-06-14 22:57:45
【问题描述】:

我有一个 php 网站正在尝试使用以下代码跟踪我的下载被点击的次数:

                //update download count
                update_attachment_counter($attachment);

                // We'll be outputting a PDF
                header ( 'Content-Type: application/pdf' );
                header ( 'Content-Disposition: inline; filename="fileName.pdf"');
                header('Content-Length: ' . filesize($attachment));
                readfile ( $attachment );
                die ();

我看到我的计数器每次下载都会上升多次。我的附件大小在 2 到 30MB 之间。是否因为每次下载我看到多个请求?如何只跟踪每次下载一次?

【问题讨论】:

  • 可能由于网络故障或update_attachment_counter(您未发布的代码)中存在错误,用户必须重新启动下载
  • update_attachment_counter 对数据库值执行 ++。如果我在它之后立即死去,没有什么令人兴奋的并且效果很好。我不想发布我的架构等 :)
  • 如何将 update_attachment_counter 更改为日志日期、ip、文件,这样调试起来会更容易。仍然很容易对计数进行查询
  • 我知道计数器应该是什么,因为我是现在唯一可以点击它的人,所以我不必担心多人同时尝试下载东西。您是否认为浏览器可能由于超时或其他原因重新启动下载?
  • 您是否使用了任何可能进行多段下载的浏览器扩展程序?

标签: php


【解决方案1】:

由于文件很大,我收到了部分下载请求。通过检查 HTTP_RANGE,我能够确定它是原始请求还是部分请求:

if(!isset($_SERVER['HTTP_RANGE']))
{
  .... update counter
}

using php to download files, not working on large files?

【讨论】:

    猜你喜欢
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2010-09-05
    • 2011-01-20
    相关资源
    最近更新 更多