Pear Download send后执行DB Update操作

时间:2014-01-04 13:16:35

标签: php pear

我正在尝试在提供下载文件后执行数据库查询。在发送下载标头后,脚本执行将停止。如果成功发送标题,我有什么办法可以执行脚本吗?

到目前为止,这是我的代码;

public function download(){

    require_once 'HTTP/Download.php';
    $this->load->helper('url_helper');

     $fname  = $this->input->post('filename');
     $path = 'public/Uploads/Films/files/'.$fname;
     $size = filesize($path);

     if(file_exists($path)){

      $dl = new HTTP_Download();
      $dl->setFile($path);
      $dl->setLastModified($unix_timestamp);
      $dl->setContentType('application/octet-stream');
      $dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, $fname);
      $dl->send();
              // DB UPDATE BLOCK NEEDS TO BE UPDATED HERE

    }else{
        redirect('phome');
    }


}

谢谢,任何帮助非常感谢。 :)

2 个答案:

答案 0 :(得分:2)

您需要进行更多调查。试着把它放到你的php文件中:

ini_set('error_log', "./php_log");
ini_set('log_errors', 1);
ini_set('error_reporting', E_ALL & ~E_NOTICE);

还在send()附近添加一些调试信息:

$rv = $dl->send();
echo "send() returned: $rv";

报告结果。

答案 1 :(得分:0)

Pear :: HTTP_Download-> send()返回true或抛出错误。声明你没有得到返回的值,必然会抛出一个错误。在send方法周围放一个try..catch,看看有什么不对。