2017-04-11 22 views
0

product_image,​​、slurp_imageなど、データベースに異なるフィールドを持つ複数の画像ファイルを保存します。私は$product->product_image$product->feature_imageは、$product->slurp_image iは異なる別のファイル名を見た)(DDとき、私は、画像ファイルLaravel:データベースに複数の画像ファイルを保存するには

public function store(Request $request) 
    { 
     $product = new Product(); 
     if($request->hasFile('product_image')) 
       { 
        $file = Input::file('product_image');    
        $imageName = time().'.'.$request->product_image->getClientOriginalExtension();   
        $product->product_image = $imageName; 
        $file->move('images/', $imageName); 
       } 
     if($request->hasFile('feature_image')) 
       { 
        $file = Input::file('feature_image');    
        $imageName = time().'.'.$request->feature_image->getClientOriginalExtension();   
        $product->feature_image = $imageName; 
        $file->move('images/', $imageName); 
       } 

     if($request->hasFile('slurp_image')) 
       { 
        $file = Input::file('slurp_image');    
        $imageName = time().'.'.$request->slurp_image->getClientOriginalExtension();   
        $product->slurp_image = $imageName; 
        $file->move('images/', $imageName); 
       }  

//  dd($product->product_image); 
//  dd($product->feature_image); 
//  dd($product->slurp_image); 
     $product->save(); 
    } 

を保存するには、次のコントローラメソッドを使用しますが、それはデータベースに保存された後、私は、データベースに格納されている同じファイルを見て異なる異なるフィールド。 誰でも解決策を見つけられるでしょうか?

答えて

0

複数の画像を一度にアップロードする場合は、一連の画像を渡すことになります。

これは以前私が行ったときの私のコントローラ機能の外観です。あなたの例では

public function multiple_upload() { 
    // get the files 
    $files = Input::file('images'); 
    // counting of uploaded images 
    $file_count = count($files); 
    // start count how many uploaded 
    $uploadcount = 0; 

    foreach ($files as $file) { 
    $rules = array('file' => 'required'); //'required|mimes:png,gif,jpeg,txt,pdf,doc' 
    $validator = Validator::make(array('file'=> $file), $rules); 
    if($validator->passes()){ 
     $destinationPath = 'uploads'; // upload folder in public directory 
     $filename = $file->getClientOriginalName(); 
     $upload_success = $file->move($destinationPath, $filename); 
     $uploadcount ++; 

     // save into database 
     $extension = $file->getClientOriginalExtension(); 
     $entry = new Uploads(); 
     $entry->mime = $file->getClientMimeType(); 
     $entry->original_filename = $filename; 
     $entry->filename = $file->getFilename().'.'.$extension; 
     $entry->save(); 
    } 
    } 
    if($uploadcount == $file_count){ 
    Session::flash('success', 'Upload successfully'); 
    return Redirect::to('upload'); 
    } else { 
    return Redirect::to('upload')->withInput()->withErrors($validator); 
    } 
} 

が、私はコントローラであなたのソリューションを実装する場合、それはより多くのこの

 $product = new Product(); 


    //upload multiple files 
    $files= []; 

    if($request->file('leftimage')) $files[] = $request->file('leftimage'); 
    if($request->file('Middleimage')) $files[] = $request->file('Middleimage'); 
    if($request->file('Rightimage')) $files[] = $request->file('Rightimage'); 

     foreach($files as $file) 
     { 
     if(!empty($file)) 
     { 
      $filename[] = $file->getClientOrginalName(); 
      if(isset($filename)){ 
      $file->move(base_path().'/frontend/sidimage/',end($filename)); 
     } 
    } 
    $product->image1 = $filename[0]; 
    $product->image2 = $filename[1]; 
    $product->image3 = $filename[2]; 
+0

ようになる画像をいただきたい、私は次のエラーを得た: 'File.php線131でErrorException: strrpos()は、パラメータ1が文字列、配列が指定されていることを期待しています。 ' – Hola

+0

コードはgithubにありますか?まもなくあなたのためにそれを見ることができます。 それ以外の場合は、すぐにコードを取得します。 – n31l

+0

https://pastebin.com/rRYyTUBa ここで私はコントローラコードを入れています – Hola

関連する問題