2017-03-29 24 views
1

私はcodeigniterアップロードライブラリを使用して複数の画像をアップロードしています。主にうまくいきますが、画像がアップロードされないことがあります。Codeigniter画像アップロードの問題

機能:

function do_upload_img() 
    { 
     if(isset($_FILES['portfolioimg']['size']) != 0){ 
      $name_array = array(); 
      $files = $_FILES; 
      $cpt = count($_FILES['portfolioimg']['name']); 

      // $config['source_image'] = ''; //get original image 
      $config['wm_type'] = 'overlay'; 
      $config['wm_overlay_path'] = './assets/img/watermark.png'; 
      $config['quality'] = 50; 
      $config['wm_vrt_alignment'] = 'middle'; 
      $config['wm_hor_alignment'] = 'center'; 
      $this->load->library('image_lib', $config); 

      for($i=0; $i<=$cpt-1; $i++) 
      { 
       $_FILES['userfile']['name']= $files['portfolioimg']['name'][$i]; 
       $_FILES['userfile']['type']= $files['portfolioimg']['type'][$i]; 
       $_FILES['userfile']['tmp_name']= $files['portfolioimg']['tmp_name'][$i]; 
       $_FILES['userfile']['error']= $files['portfolioimg']['error'][$i]; 
       $_FILES['userfile']['size']= $files['portfolioimg']['size'][$i];  

       $imgnam = rand(10,1000000).time(); 
       $ext = pathinfo($files['portfolioimg']['name'][$i], PATHINFO_EXTENSION); 
       if($this->upload->initialize($this->set_upload_options($imgnam))){ 
         $data = $this->upload->do_upload(); 
         $config['source_image'] = './assets/portfolio_img/' . 'Rookie_'.$imgnam.'.'.$ext; 
         $this->image_lib->initialize($config); 
         $this->image_lib->watermark(); 
         $name_array[] = $this->upload->data('file_name'); 
         $this->create_thumbnail('./assets/portfolio_img/',$imgnam,$ext); 
       }else{ 
        $this->session->set_flashdata('falsemsg','Only jpg, jpeg, png files are allowed to be uploaded.'); 
       } 
      } 
      return $name_array; 
     }else{ 
      return false; 
     } 
    } 
    private function set_upload_options($imgnam) 
    { 
      //upload an image options 
     $config = array(); 
     $config['upload_path'] = './assets/portfolio_img/'; 
     $config['allowed_types'] = 'jpeg|jpg|png|JPEG|JPG|PNG'; 
     $config['max_size']  = '0'; 
     $config['overwrite']  = true; 
     $config['file_name']  = 'Rookie_'.$imgnam; 

     return $config; 
    } 

これは、イムは、画像をアップロードするために使用する機能です。私はなぜ時にはうまくいかないのか分かりません。だから私のコードでエラーを理解するのを助けてください。前もって感謝します。

答えて

1
$b='portfolioimg'; 
    $fileName = $_FILES[$b]['name']; 
       $images = $fileName; 
       $cpt = count($files); 
       for($i=1; $i<=$cpt; $i++) 
       { 
        $_FILES[$b]['name']= $files[$b]['name'][$i]; 
        $_FILES[$b]['type']= $files[$b]['type'][$i]; 
        $_FILES[$b]['tmp_name']= $files[$b]['tmp_name'][$i]; 
        $_FILES[$b]['error']= $files[$b]['error'][$i]; 
        $_FILES[$b]['size']= $files[$b]['size'][$i]; 
        $uploadPath = './assets/portfolio_img/'; 
        $config['upload_path'] = $uploadPath; 
        $config['allowed_types'] = 'gif|jpg|png|ico'; 
        $this->load->library('upload', $config); 
        $this->upload->initialize($config); 

      if($this->upload->do_upload($b.$i)){ 
      $fileData = $this->upload->data(); 
      $uploadData[$i]['file_name'] = $fileData['file_name']; 
      $im[$i]=$uploadData[$i]['file_name']; 
      } 
      } 
     $tblValues = array(

     'image'=>$images, // change field name, 


    ); 
    $this->db->insert('table_name', $tblValues); 
+0

あなたは上記のコードで何が間違っを教えてくださいできますか? – Shihas

+0

frnd ...実際にそれは私を混乱させるので、私は上記の1つを書く..それは私のために働く.. – cnk

+0

あなたは何を混乱させる?実際には上記のコードも大部分のケースで動作しますが、いつかは失敗します。私はそれを把握したい。 – Shihas

1

コントローラー:

if(isset($_POST['submit'])) 
     { 
      $config['upload_path']="./uploads/"; 
      $config['allowed_types']='jpg|jpeg|gif|png'; 
      $this->load->library('upload',$config); 
      if($this->upload->do_upload()) 
      { 
       echo "file upload success"; 
      } 
      else 
      { 
       echo "file upload failed"; 
      } 
     } 

ビュー:

<form action="<?php echo base_url();?>controller/function" method="POST" enctype="multipart/form-data" > 
    Select File To Upload:<br /> 
    <input type="file" name="userfile" /> 
    <br /><br /> 
    <input type="submit" name="submit" value="Upload" class="btn btn-success" /> 
</form> 
+0

いくつかの説明を追加して、コードを読んでからdiffを実行するよりも理解しやすいようにしてください。 –

+0

あなたの答えをありがとう。しかし、あなたはそれを投稿するには遅すぎます。幸運(Y):) – Shihas

関連する問題