2015-08-20 2 views
0

Я стараюсь все больше и больше, но я не могу два сохранить два файла с разными именами в базе данных.Два изображения сохраняются с одинаковым именем в 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'] 

[ «ошибка»]! = 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; 
} 

Пожалуйста, помогите мне.

+0

Если вы не можете быть обеспокоены, чтобы форматировать Ваш код в читаемом образом, почему shoudl мы читаем? – RiggsFolly

ответ

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; 
0

Вам необходимо позвонить

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

для каждого загружаемого файла

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