2015-08-10 7 views
0

У меня возникла проблема с загрузкой файлов в CodeIgniter 2.2. Я могу создать его конкретную папку, но я не могу загрузить файл, который я выбрал.Codeigniter 2.2: Загрузка файла

Вот мой контроллер:

function create_report() 
{ 
    if($this->session->userdata('logged_in')) 
    { 

      $this->create_model->set_report(); 


      $this->session->set_flashdata('message', 'Success! You created a Report!'); 
      #$redirect($_SERVER['HTTP_REFERER'], 'refresh'); 


    } 
    else 
    { 
      $this->session->set_flashdata('message', 'Oops! You have to Login'); 
    //If no session, redirect to login page 
      redirect('login', 'refresh'); 
    }  

} 

и вот мой Модель:

function set_report() 
    { 
    if($this->session->userdata('logged_in')) 
     {  
       $session_data = $this->session->userdata('logged_in'); 

       if($_FILES['userfile']['name'] != NULL) 
       {  
         $main_dir = './FILES/'.$this->input->post('patientname').'/'; 
         // Check if User Folder is already created. Create New if none exist 
         if(!is_dir($main_dir)){ 
         mkdir($main_dir, 0777); 
         } 

         $target_dir = './FILES/'.$this->input->post('patientname').'/'.$this->input->post('session_id').'/'; 
         // Check if Session Folder is already created. Create New if none exist 
         if(!is_dir($target_dir)) { 
         mkdir($target_dir, 0777); 
         } 

         $config['upload_path'] = './FILES/'.$this->input->post('patientname').'/'.$this->input->post('session_id').'/'; 
         $config['allowed_types'] = 'gif|jpg|png|docx|xlsx|doc|pdf|csv|zip|rar|7zip|ppt|pptx'; 


         $this->load->library('upload', $config); 



         $data2 = array('upload_data' => $this->upload->data()); 



       } 

       $data = array(      
        'session_id' => $this->input->post('session_id'), 
        'report_creator' => $session_data['username'], 
        'report_patientname' => $this->input->post('patientname'), 
        'report_patientid' => $this->input->post('patientid'), 
        'report_subject' => $this->input->post('subject'),      
        'report_description' => $this->input->post('description'), 
        'report_time' => $this->input->post('date'),       
        'report_date' => $this->input->post('time')      

       ); 

       return $this->db->insert('session_reports', $data); 

    } 


} 

Я пытался решить эту проблему, и я не выяснить ключ. Надеюсь, кто-нибудь сможет мне помочь.

+0

Так? Какая у вас ошибка? Вы пытались отобразить '$ this-> upload-> display_errors()', чтобы узнать, что случилось? –

+0

Кстати, вы забыли '$ this-> upload-> do_upload ($ field_name)', чтобы загрузить файл. Прочитайте документацию: https://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html –

+0

вы уверены, что 'mkdir ($ main_dir, 0777)' работает? –

ответ

1

Я считаю, что мне не удалось инициализировать конфигурацию.

$this->upload->initialize($config);  

Это решило мою проблему. Спасибо всем

0

Удалить эту

$data2 = array('upload_data' => $this->upload->data()); 

и заменить это тот

if (!$this->upload->do_upload()) 
{ 
    $error = array('error' => $this->upload->display_errors()); 

    $this->load->view('upload_form', $error); 
} 
else 
{ 
    $data = array('upload_data' => $this->upload->data()); 

    $this->load->view('upload_success', $data); 
} 

Library Load

$this->load->library('upload', $config); 

В качестве альтернативы вы можете задать настройки, вызвав метод initialize(). Полезно, если вы автоматически загрузит класс:

$this->upload->initialize($config); 

Codeigniter file Upload

Смежные вопросы