2017-11-28 5 views
0

私はユーザーが製品画像を変更できるように更新フォームを作ろうとしています。フォームは画像を除いてすべて更新されるようにうまく動作します。CodeIgniterで製品画像を更新

また、私はproduct_foto_thumbと通常のproduct_fotoを持っていますので、私の見解ではそれを行う方法がわかりません。

これは私が私の見解でそれを持っているかである:

<input type="file" name="userfile"/> 
<td> 
    <?php echo form_input(array('type'=>'hidden','id'=>'product_foto', 'name'=>'product_foto', 'value' => $product['product_foto']));?> 
</td> 

しかし、私はまたproduct_foto_thumbための入力タイプを必要とすると思いますか?

そして、これが私の更新制御機能である:

public function update_product() 
{ 

    $id= $this->input->post('product_id'); 
    $data = array(
     'product_naam' => $this->input->post('product_naam'), 
     'category_id' => $this->input->post('category_id'), 
     'ophaal_plaats' => $this->input->post('ophaal_plaats'), 
     'product_beschrijving' => $this->input->post('product_beschrijving'), 
     'product_foto_thumb' => 'thumb_'.$dataThumb["raw_name"].$dataThumb['file_ext'], 
     'product_foto' => 'new_'.$data["raw_name"].$data['file_ext'], 
    ); 
    $this->Update_product_model->update_product_function($id,$data); 
} 

だから、フォームの作品が、私は新しい画像を選択して、私がフォームを送信する場合を除いて、古い画像が削除されるとの新たな画像がありません製品。 誰でも助けてくれますか?

答えて

1

このコードを試してください、間違いなくあなたに役立ちます。

if($this->input->post('submit')){ 
    if(($_FILES['userfile'])){ 
     $errors= array(); 
     $file_name = $_FILES['userfile']['name']; 
     $file_size = $_FILES['userfile']['size']; 
     $file_tmp = $_FILES['userfile']['tmp_name']; 
     $file_type = $_FILES['userfile']['type']; 
     $ext = pathinfo($file_name, PATHINFO_EXTENSION); 
     $expensions= array("jpeg","jpg","png"); 
     // this is used for unique file name always 
     $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,"upload_folder_name_here/".$filename); 
     } 
    } 
    $id= $this->input->post('product_id'); 
    $data = array(
     'product_naam' => $this->input->post('product_naam'), 
     'category_id' => $this->input->post('category_id'), 
     'ophaal_plaats' => $this->input->post('ophaal_plaats'), 
     'product_beschrijving' => $this->input->post('product_beschrijving'), 
     'product_foto_thumb' => 'thumb_'.$filename, 
     'product_foto' => 'new_'.$filename, 
    ); 
    $this->Update_product_model->update_product_function($id,$data); 
} 
関連する問題