如何在codeigniter控制器中force_download
之后刷新页面,这是我的控制器功能。调用force_download
后,它没有执行任何功能。
public function download(){
$this->load->library('user_agent');
$this->load->helper('download');
$file_id = $this->uri->segment(3);
if(!empty($file_id)){
//get file info from database
$fileInfo = $this->Files->get_file($file_id);
foreach ($fileInfo as $key => $object) {
$download_direc = $object->file_direc;
}
//download file
force_download($download_direc, NULL);
//increment the download value by 1 in the db
$this->Files->update_download($file_id);
//refresh the page
redirect($this->agent->referrer());
}
}
谢谢
答案 0 :(得分:2)
在用户单击锚点链接或按钮下载文件时的视图页面上。 只需获取该按钮的id并将jQuery间隔设置为2500-3000,这样页面将在2.5-3秒后刷新。
答案 1 :(得分:0)
你可以试试这个。我希望它会对你有所帮助。
public function download($fileName = NULL) {
if ($fileName) {
$file = realpath ( "download" ) . "\\" . $fileName;
if (file_exists ( $file )) {
$data = file_get_contents ( $file );
force_download ( $fileName, $data );
} else {
redirect ( base_url () );
}
}
}