2017-08-24 92 views
0

我无法在codeigniter中插入多个具有多个输入的图像,我尽力而为,但无法获取图像。无法在codeigniter中插入具有多个输入的多个图像

以下是我的代码。任何人都可以指导我正确的方向吗?

HTML

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

控制器

if($this->input->post('save')=='save') 
{ 
    $count = count($_FILES['item_img']['size']); 
    for($i=0; $i<$count; $i++) 
    { 

     $config['upload_path'] = './img/items/'; 
     $config['allowed_types']= 'gif|jpg|png'; 
     $this->upload->initialize($config); 
     $count = count($_FILES['item_img']['size']); 
     foreach($_FILES as $key=>$value) 
     $_FILES['userfile']['name']=$value['name'][$i]; 
     $_FILES['userfile']['type'] = $value['type'][$i]; 
     $_FILES['userfile']['tmp_name'] = $value['tmp_name'][$i]; 
     $_FILES['userfile']['error']  = $value['error'][$i]; 
     $_FILES['userfile']['size'] = $value['size'][$i]; 
     $this->load->library('upload', $config); 
     $this->upload->do_upload(); 
     $data = $this->upload->data(); 
     $names='img/items/'.$data['file_name']; 


     $insertdata2=array('i_img'=>$names, 'createdon'=>date("Y-m-d H:i:s")); 
     $this->model->insertData('item_info_master',$insertdata2); 

    } 
} 

模型

public function insertData($table,$data) 
{ 
    $this->db->insert($table, $data); 
} 

回答

0

你可以得到所有的图像形式O NE输入

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

,你可以找回使用$ _FILES

+0

我在与附加功能系统中的一个或多个输入。 –

+0

然后从输入名称中移除大括号,即[] –

0

我看到的一些问题形成的PHP。我首先建议您输入切换到这一点:

<input type="file" name="item_img" multiple="multiple" /> 

如果你不能做到这一点,那么你就需要不同的方式处理PHP回路控制器来获得这些图像。这里有一个问题/答案,Uploading multiple photos using with same name

除了循环之外,还需要在控制器中调整几件事。对于初学者,$_FILES['item_img']['size']正在获取文件本身的大小(例如:5MB),而不是文件的数量。所以这个count变量将永远不会工作。

您还没有正确加载上传库和配置。看看这个问题/答案,Upload multiple files in CodeIgniter,如何加载配置,然后处理多个图像的一个很好的例子。

希望这会有所帮助。

0

试试这个:

<input type="file" name="gallery[]" multiple> 

和PHP代码:

if(!is_dir("uploads/gallery/".$id."/")) { 
    mkdir("uploads/gallery/".$id."/"); 
} 
foreach($_FILES['gallery']['name'] as $key=>$val){ 
    //upload and stored images 
    $target_dir = "uploads/gallery/".$id."/"; 
    $target_file = $target_dir.$_FILES['gallery']['name'][$key]; 
    $type = 'image'; 
    if(move_uploaded_file($_FILES['gallery']['tmp_name'][$key],$target_file)){ 
    $this->model->addGallery($id,$target_file,$type,$thumbnail); 
    //$images_arr[] = $target_file; 
    } 
} 

您的欢迎