1

我正在使用 CakePHP 的媒体视图来强制下载文件。我的代码与食谱中提供的示例非常相似,为方便起见,我将其粘贴在这里:

<?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 的媒体视图是否可以通过某种方式报告下载确实成功?

4

1 回答 1

2

检测文件何时完成下载并非易事。这可以在客户端使用 javascript 完成,但浏览器不会为此提供任何挂钩。

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

于 2012-04-10T17:11:07.413 回答