在codeigniter中保存两个具有相同名称的图像

时间:2015-08-20 12:51:37

标签: php codeigniter

我尝试越来越多,但我无法在数据库中保存两个具有不同名称的文件。

我的代码在这里:

if(!empty($_FILES['image']['name']))
    {

                $config['upload_path'] = 'uploads/content/';
        $config['allowed_types'] = 'gif|jpg|jpeg|png|JPEG|PNG|GIF|bmp';

                        /*      */
              $newFileName = $_FILES['image']['name'];
              $fileExt = @array_pop(explode(".", $newFileName));
              $filename = md5(time().$newFileName).".".$fileExt;
              $config['file_name'] = $filename;
              $_POST['image'] = $filename;
                        /*      */
              $this->load->library('upload', $config);

       if((! $this->upload->do_upload('image')) && $_FILES['image']['error'] != 4)
        {
            $upload_error = $this->upload->display_errors();
            if(!empty($upload_error))
            {
             $this->session->set_flashdata('imageResponse', '<div class="alert alert-danger" role="alert">Image upload is not possible.only allowed gif or jpg or jpeg or png or gif or bmp</div>');
                                       if($type=='install')
                                      {
                                   redirect(base_url().'addcontentinstallation');
                                      }
                                      if($type=='video')
                                      {
                                   redirect(base_url().'addcontentvedio');
                                      }
                                      if($type=='banner')
                                      {
                                   redirect(base_url().'addcontentbanner');
                                      }
                                      if($type=='website')
                                      {
                                   redirect(base_url().'addcontentwebsite');
                                      }

                                 //redirect('addcontent');
            }
        }
        $data = $this->upload->data();
        //$_POST['image'] = $data['orig_name'];

        $this->upload->do_upload(); 
    }
    $_POST['image']=!empty($_POST['image'])?$_POST['image']:"";

        if(!empty($_FILES['title_image']['name']))
    {

                $config['upload_path'] = 'uploads/content/';
        $config['allowed_types'] = 'gif|jpg|jpeg|png|JPEG|PNG|GIF|bmp';

                             /*      */
              $newFileName = $_FILES['title_image']['name'];
              $fileExt = @array_pop(explode(".", $newFileName));
              $filename = md5(time().$newFileName).".".$fileExt;
              $config['title_image'] = $filename;
              $_POST['image'] = $filename;
                        /*      */
              $this->load->library('upload', $config);  

       if((! $this->upload->do_upload('title_image')) && $_FILES['title_image']['error'] != 4)
        {
            $upload_error = $this->upload->display_errors();
            if(!empty($upload_error))
            {
             $this->session->set_flashdata('imageResponse', '<div class="alert alert-danger" role="alert">Image upload is not possible.only allowed gif or jpg or jpeg or png or gif or bmp</div>');
             if($type=='install')
                                    {
                                 redirect(base_url().'addcontentinstallation');
                                    }
                                    if($type=='video')
                                    {
                                 redirect(base_url().'addcontentvedio');
                                    }
                                    if($type=='banner')
                                    {
                                 redirect(base_url().'addcontentbanner');
                                    }
                                    if($type=='website')
                                    {
                                 redirect(base_url().'addcontentwebsite');
                                    }
            }
        }
        $data = $this->upload->data();
        //$_POST['title_image'] = $data['orig_name'];

        $this->upload->do_upload(); 
    }
    $_POST['title_image']=!empty($_POST['title_image'])?$_POST['title_image']:"";
          $this->content_model->add_conetent($_POST);

$this->session->set_flashdata('imageResponse', '<div class="alert alert-success" role="alert">Success! Offer Content added successfully!</div>');
           if($type=='install')
           {
        redirect(base_url().'addcontentinstallation');
           }
           if($type=='video')
           {
        redirect(base_url().'addcontentvedio');
           }
           if($type=='banner')
           {
        redirect(base_url().'addcontentbanner');
           }
           if($type=='website')
           {
        redirect(base_url().'addcontentwebsite');
           }
}

我搜索的更多,我发现我需要使用这个

 $this->upload->initialize($this->set_upload_options($filename));
之前的! $this->upload->do_upload('title_image')) && $_FILES['title_image']['error'] != 4)

$this->upload->initialize($this->set_upload_options($filename));
before the ! $this->upload->do_upload('image')) && $_FILES['title_image']

['error']!= 4)但是我遇到错误,上传路径似乎没有效果 但是我无法做到这一点..

 private function set_upload_options($filename_multi)
{   
    //  upload an image options
    $config = array();
    $config['upload_path']   = 'assets/uploads/logo/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp|GIF|JPG|JPEG|jpeg|BMP';
    $config['max_size']      = '30000';
    $config['overwrite']     = FALSE;
    $config['file_name'] = $filename_multi;
    return $config;
}

请帮帮我。

2 个答案:

答案 0 :(得分:0)

创建像这样的唯一文件名

$file_extension = pathinfo($_FILES["title_image"]["name"], PATHINFO_EXTENSION);
$file_name = pathinfo($_FILES["title_image"]["name"], PATHINFO_FILENAME);
$filename = md5(time() . $file_name ) . '.' . $file_extension;

答案 1 :(得分:0)

您需要致电

$this->upload->initialize(array(
   'encrypt_name' => true // will create a unique name
));

对于您要上传的每个文件