2015-09-04 3 views
0

Я получаю ошибки при успешном загрузке файлов. входной файл HTML, каксообщение об ошибке при загрузке нескольких файлов в codeigniter

<input type="file" name="userfile[]" > 
    <input type="file" name="userfile[]" > 

моя функция контроллера содержит

$files = $_FILES; 
      $cpt = count($_FILES['userfile']['name']); 
      for($i=0; $i<$cpt; $i++) 
      {   
       $_FILES['userfile']['name']= $files['userfile']['name'][$i]; 
       $_FILES['userfile']['type']= $files['userfile']['type'][$i]; 
       $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i]; 
       $_FILES['userfile']['error']= $files['userfile']['error'][$i]; 
       $_FILES['userfile']['size']= $files['userfile']['size'][$i];  

       $this->upload->initialize($this->set_upload_options()); 
       $this->upload->do_upload(); 
      } 

      if(!$this->upload->do_upload('userfile[0]')&&!$this->upload->do_upload('userfile[1]')) 
      { 
       $data['message'] = $this->upload->display_errors(); 
       $this->parser->parse('view_fileUploading',$data); 
      } 
      else 
      { 
       $data['message'] = "Success"; 
       $this->parser->parse('view_fileUploading',$data); 
      } 

и

private function set_upload_options() 
    { 
     $id = uniqid(); 
     $new_image_name = 'image_' . $id . '.png'; 
     //upload an image options 
     $config = array(); 
     $config['upload_path'] = 'images/'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size']  = '0'; 
     $config['overwrite']  = FALSE; 
     $config['file_name'] = $new_image_name; 


     return $config; 
    } 

в моих изображениях папки я получаю все мои загрузки изображений успешно, но я получаю ошибки слишком который похож на «Вы не выбрали файл для загрузки» enter image description here

я думаю, мой

если (! $ This-> upload-> do_upload ('UserFile [0]') & &! $ This-> upload-> do_upload ('UserFile 1'))

не работает должным образом

как я могу получить успешное сообщение правильно ??

ответ

1

Вы решили повторно загрузить файл на:

if(!$this->upload->do_upload('userfile[0]')&&!$this->upload->do_upload('userfile[1]'))

Однако понять, что файл уже загрузить на do_upload()

$this->upload->initialize($this->set_upload_options()); $this->upload->do_upload();

Затем Ваше Actual решение должно быть :

$uploadStatus=array(); 
    $cpt = count($_FILES['userfile']['name']); 
    for ($i = 0; $i < $cpt; $i++) { 
     $_FILES['userfile']['name'] = $files['userfile']['name'][$i]; 
     $_FILES['userfile']['type'] = $files['userfile']['type'][$i]; 
     $_FILES['userfile']['tmp_name'] = $files['userfile']['tmp_name'][$i]; 
     $_FILES['userfile']['error'] = $files['userfile']['error'][$i]; 
     $_FILES['userfile']['size'] = $files['userfile']['size'][$i]; 

     $this->upload->initialize($this->set_upload_options()); 
     $uploadStatus[]=$this->upload->do_upload(); 
    } 
    if (in_array('0',$uploadStatus)) { 

     $data['message'] = $this->upload->display_errors(); 
     $this->parser->parse('view_fileUploading', $data); 

    } else { 
     $data['message'] = "Success"; 
     $this->parser->parse('view_fileUploading', $data); 
    } 
Смежные вопросы