Загрузка загруженных файлов с помощью Code igniter

#php #codeigniter

#php #codeigniter

Вопрос:

Я пытаюсь загрузить загруженные файлы в Code igniter, но это не работает. Вот мой контроллер (download.php ). Если кто-то может опубликовать пример, высоко ценю.

 <?php  
   class Download extends CI_Controller {   
      public function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('form', 'url')); 
      }     
      public function index() { 
            $this->load->view('vwHomeHeader', $data);
            $this->load->view('vwHomeMenu', $data);
            $this->load->view('download', $data);
            $this->load->view('vwHomeFooter', $data); 
      }     
public function download ($file_path = "") {         
            $this->load->helper('download');            
            $data['download_file'] = $file_path;      
            $this->load->view("download",$data);
            redirect(current_url(), "refresh");                      
        }
    }
?>
  

И вот файл просмотра (download.php )

 <?php
if( ! empty($download_file))
    {
        $data = file_get_contents(base_url("/upload/".$download_file)); 
        $name = $download_file;
        force_download($name, $data);
    }
?>
  

Спасибо

Комментарии:

1. Пожалуйста, опишите ожидаемое и фактическое поведение

Ответ №1:

изменяйте по своему усмотрению (контроллер, представление не требуется, если вы не хотите использовать привязку тега к URL-адресу контроллера загрузки)

     if($file) {
        $filepath = FCPATH . 'uploads/projects/'.$ProjID.'/'.$file['file_name'];

        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . basename($filepath));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($filepath));
        ob_clean();
        flush();
        readfile($filepath);
        exit;
    }
  

Комментарии:

1. Привет, Джеймс, спасибо за ответ… но что мне действительно нужно, так это отобразить существующие файлы в папке «загрузка», и когда пользователь выберет файл, затем загрузите

2. Затем используйте PHP для чтения файлов в расположении и перечисления их, а затем перенаправьте на другой контроллер и используйте этот скрипт.