如何在CI中强制下载后刷新页面

时间:2018-05-28 09:22:49

标签: php codeigniter

如何在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());
    }
}

谢谢

2 个答案:

答案 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 () );
    }
   }
  }