我正在尝试在提供下载文件后执行数据库查询。在发送下载标头后,脚本执行将停止。如果成功发送标题,我有什么办法可以执行脚本吗?
到目前为止,这是我的代码;
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');
}
}
谢谢,任何帮助非常感谢。 :)
答案 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,看看有什么不对。