2012-04-06 56 views
1

我正在使用CakePHP的媒體視圖來強制文件下載。我的代碼是非常酷似the example provided in the cookbook,我將在這裏貼上爲了您的方便: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的媒體視圖有什麼方法可以報告下載的確是成功的嗎?

回答

2

檢測文件何時完成下載並非易事。這是用JavaScript在客戶端完成的,但瀏覽器不會爲你提供任何鉤子。

有一個很聰明的解決方案here(設置一個cookie,然後用javascript來查找它),但它只會告訴你下載何時開始。