繁体   English   中英

在Codeigniter中上传多张图片

[英]Multiple image upload in codeigniter

我想在一个提交中上传多个图像,在这里我想将图像名称保存在数据库的两个单独的字段中。 下面给出的代码是我用于插入单个图像。 我试图通过更改名称重复两次图像上传代码来解决此问题,但它确实有效,但我想知道是否有解决此问题的适当方法。

<input type="file" class="upload" name="picture" />

public function image_upload()
{
    if($this->input->post('submit')=="save")
    {
        //Check whether user upload picture
        if(!empty($_FILES['picture']['name']))
        {
            $config['upload_path'] = 'uploads/images/banner/';
            $config['allowed_types'] = 'jpg|jpeg|png|gif';
            $config['file_name'] = $_FILES['picture']['name'];

            //Load upload library and initialize configuration
            $this->load->library('upload',$config);
            $this->upload->initialize($config);

            if($this->upload->do_upload('picture'))
            {
                $uploadData = $this->upload->data();
                $picture = $uploadData['file_name'];
            }

             //Prepare array of user data
            $userData = array('package_name' => $this->input->post('package_name'),'picture' => $picture); 

            //Pass user data to model
            $insertUserData = $this->gt_banner_model->insert_image($userData);
        }

        //Storing insertion status message.
       if(isset($insertUserData))
             {
                $data['message']="* Image inserted successfully.";

             }
             else
             {
                $data['message']="* Some problems occured, please try again.";
             }
    }
    //Form for adding user data
    $query = $this->db->get("gt_banner");
    $data['records'] = $query->result();
    $this->load->view('admin/banner/banner_insert',$data);
}

在html中

<input type="file" class="upload" multiple="" name="images[]"> 

并确保您的表单中具有multipart属性:

<form enctype="multipart/form-data" method="post" action="your_controller_path/upload_files">

在控制器中:

public function upload_files(){
        if($this->input->post('submit')){
            //print_r($_POST);
            if(($_FILES['images'])){
                  $errors= array();
                  $file_name = $_FILES['images']['name'];
                  $file_size = $_FILES['images']['size'];
                  $file_tmp = $_FILES['images']['tmp_name'];
                  $file_type = $_FILES['images']['type'];
                  $ext = pathinfo($file_name, PATHINFO_EXTENSION);
                  $expensions= array("jpeg","jpg","png");
                  $mtime = uniqid(microtime());
                     $uniqueid =  substr($mtime,2,8);
                     $filename = $uniqueid.'.'.$ext;
                    if(in_array($ext,$expensions)=== false){
                       $errors[]="extension not allowed, please choose a JPEG or PNG file.";
                    }
                    if($file_size > 2097152) {
                       $errors[]='File size must be excately 2 MB';
                    }
                    if(empty($errors)==true) {
                        move_uploaded_file($file_tmp,"uploads/".$filename);
                    }
            }


            $data = array(
                    'imagename'=> $filename,
                    'created'=> date('Y-m-d h:i:s')
                );
            $this->db->insert('user_detail', $data);
            $insert_id = $this->db->insert_id();
                if($insert_id){
                    $this->session->set_flashdata('success', 'Image uploaded successfully');
                    redirect('Current_controller_index');
                }else{
                    $this->session->set_flashdata('error', 'Some error occur');
                    redirect('Current_controller_index');
                }
        }
    }

我已经在这里解决了相同的问题, 在CodeIgniter中上传多个图像

遵循此步骤,可能会对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM