Header Ads

Header ADS

Laravel Multiple Image Upload

 First way:-

//blade file code for image
<input type="file" name="image[]" multiple  class="form-control">

//Product Model code
  public function productImages()
    {
        return $this->hasMany(ProductImage::class, 'product_id', 'id');
    }

//controller code
   public function store(ProductFormRequest $request)
    {
        $validateData = $request->validated();

        $category = Category::findOrFail($validateData['category_id']);

      $product =   $category->products()->create([
            'category_id'=>$validateData['category_id'],
            'name'=>$validateData['name'],
            'slug'=>Str::slug($validateData['slug']),
            'brand'=>$validateData['brand'],
            'small_description'=>$validateData['small_description'],
            'description'=>$validateData['description'],
            'original_price'=>$validateData['original_price'],
            'selling_price'=>$validateData['selling_price'],
            'quantity'=>$validateData['quantity'],

            'trending'=>$request->trending == true ? '1':'0',
            'status'=>$request->status == true ? '1':'0',

            'meta_title'=>$validateData['meta_title'],
            'meta_keyword'=>$validateData['meta_keyword'],
            'meta_description'=>$validateData['meta_description'],

        ]);

      if($request->hasFile('image')){
        $uploadPath = 'uploads/products/';

   

        foreach($request->file('image') as $key => $imageFile){

            $ext = $imageFile->getClientOriginalExtension();
            $fileName =  Str::random(10).time().'.'.$ext;
            $imageFile->move($uploadPath, $fileName);
            $finalImagePathName = $uploadPath.'-'.$fileName;

            $product->productImages()->create([
                'product_id'=>$product->id,
                'image'=>$finalImagePathName,
              ]);  
        }
      }

    return redirect('admin/products')->with('message', 'Product Uploaded');

    }

//Another Way:-
 public function store(ProductFormRequest $request)
    {
        $validateData = $request->validated();

        $category = Category::findOrFail($validateData['category_id']);

      $product =   $category->products()->create([
            'category_id'=>$validateData['category_id'],
            'name'=>$validateData['name'],
            'slug'=>Str::slug($validateData['slug']),
            'brand'=>$validateData['brand'],
            'small_description'=>$validateData['small_description'],
            'description'=>$validateData['description'],
            'original_price'=>$validateData['original_price'],
            'selling_price'=>$validateData['selling_price'],
            'quantity'=>$validateData['quantity'],

            'trending'=>$request->trending == true ? '1':'0',
            'status'=>$request->status == true ? '1':'0',

            'meta_title'=>$validateData['meta_title'],
            'meta_keyword'=>$validateData['meta_keyword'],
            'meta_description'=>$validateData['meta_description'],

        ]);

      if($request->hasFile('image')){
        $uploadPath = 'uploads/products/';
        foreach($request->file('image') as $key => $imageFile){
            $i = 1;
            $ext = $imageFile->getClientOriginalExtension();
            $fileName =  time().$i++.'.'.$ext;
            $imageFile->move($uploadPath, $fileName);
            $finalImagePathName = $uploadPath.'-'.$fileName;

            $product->productImages()->create([
                'product_id'=>$product->id,
                'image'=>$finalImagePathName,
              ]);  
        }
      }

    return redirect('admin/products')->with('message', 'Product Uploaded');

    }

No comments

Theme images by fpm. Powered by Blogger.