CakePHP:使用媒体视图报告下载失败

时间:2012-04-06 16:53:38

标签: cakephp

我正在使用CakePHP的Media视图来强制下载文件。我的代码与the example provided in the cookbook非常相似,为方便起见,我会在此处粘贴:

<?php
class ExampleController extends AppController {
    public function download () {
        $this->viewClass = 'Media';
        // Download app/outside_webroot_dir/example.zip
        $params = array(
            'id'        => 'example.zip',
            'name'      => 'example',
            'download'  => true,
            'extension' => 'zip',
            'path'      => APP . 'outside_webroot_dir' . DS
        );
        $this->set($params);
    }
}

在数据库中,我有一个字段可以跟踪文件的下载次数。我正在寻找一种方法来确保这个数字尽可能准确,因此如果用户的下载被取消或超时,则数字不会增加。 CakePHP的Media视图是否有某种方式来报告下载确实是成功的?

1 个答案:

答案 0 :(得分:2)

检测文件下载完成并非易事。这是用javascript在客户端完成的,但是浏览器不会为你提供任何钩子。

有一个非常聪明的解决方案here(设置一个cookie然后用javascript查找它),但它只会告诉你下载何时开始。