2013-10-03 2 views
1

Я сделал код, который позволит мне загружать несколько файлов, но в отдельномкак загружать несколько файлов в одном <input>

Я пытался загрузить несколько файлов в один вход, где я установил свой входной тег в

<input type="file" multiple="" name="file1"> 

Я выбрал 3 изображения, но только 1 изображение было загружено ..

вот мой взгляд, прежде чем изменять свой вход:

<?php echo form_open_multipart('test'); ?> 
<p> 
    <?php echo form_label('File 1: ', 'file1') ?> 
    <input type='file' name='file1' id='file1'> 
</p> 
<p> 
    <?php //echo form_label('File 2: ', 'file2') ?> 
    <input type='file' name='file2' id='file2'> 
</p> 
<p><?php echo form_submit('submit', 'Upload them files!') ?></p> 

и вот мой CONTROLLER

function index() 
{ 
    if (isset($_POST['submit'])) 
    { 
     $this->load->library('upload'); 

     $config['upload_path'] = './upload_documents/'; 
     $config['allowed_types'] = 'jpg|png|gif|jpeg|JPG|PNG|GIF|JPEG'; 
     $config['max_size'] = '0'; // 0 = no file size limit 
     $config['max_width'] = '0'; 
     $config['max_height'] = '0'; 
     $config['overwrite'] = TRUE; 

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

     foreach($_FILES as $field => $file) 
     { 
      // No problems with the file 
      if($file['error'] == 0) 
      { 
       // So lets upload 
       if ($this->upload->do_upload($field)) 
       { 
        $data = $this->upload->data(); 
        //alert("nice"); 
       } 
       else 
       { 
        $errors = $this->upload->display_errors(); 
        die(); 
       } 
      } 
      else{ 
       echo "alksjdfl"; 
       die(); 
      } 
     } 
    } 
    $this->load->view("test"); 
    } 
} 

ответ

1

Используйте этот мульти библиотека загрузки файлов

https://github.com/stvnthomas/CodeIgniter-Multi-Upload/blob/master/MY_Upload.php

// Prepraing upload config & upload files 
$config = array(); 
$config['upload_path'] = 'temp/'; 
$config['allowed_types'] = 'gif|jpg|png'; 
$config['max_size'] = '256000'; 
$this->load->library('upload'); 
$this->upload->initialize($config); 
$this->upload->do_multi_upload("my_file"); 
$files_upload = $this->upload->get_multi_upload_data(); 
$err_msg = $this->upload->display_errors(); 

if (!empty($files_upload) && is_array($files_upload)) { 

    foreach ($files_upload as $file_data) { 

    // Your files here :) 
    } 
} 

Отдельное спасибо @stvnthomas для библиотеки :)

+0

Могу ли я использовать, что только один вход? – Vincent

+0

Где я должен положить MY_upload.php? – Vincent

+1

в папке приложений/библиотек – Dino

1

Вы должны использовать эту библиотеку для мульти загрузки в CI https://github.com/stvnthomas/CodeIgniter-Multi-Upload

Установка Просто скопируйте файл MY_Upload.php в приложениях библиотеки каталогов.

Использование: Функция test_up в контроллере

public function test_up(){ 
    if($this->input->post('submit')){ 
     $path = './public/test_upload/'; 
     $this->load->library('upload'); 
     $this->upload->initialize(array(
      "upload_path"=>$path, 
      "allowed_types"=>"*" 
     )); 
     if($this->upload->do_multi_upload("myfile")){ 
      echo '<pre>'; 
      print_r($this->upload->get_multi_upload_data()); 
      echo '</pre>'; 
     } 
    }else{ 
     $this->load->view('test/upload_view'); 
    } 
} 

upload_view.php в приложения/просмотр/тест папку

<form action="" method="post" enctype="multipart/form-data"> 
<input type="file" name="myfile[]" id="myfile" multiple> 
<input type="submit" name="submit" id="submit" value="submit"/> 

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