upload multiple files on laravel

Viewed 60

I have a problem for many file uploads with the request structure for the file variables in an array. the following is the code snippet. i need a solution for this, thanks

$cimage = count($request->variant[$loop]['img']);
for($loops1 = 0; $loops1 < $cimage; $loops1++) {
    $variantImage      = $request->file($request->variant[$loop]['img'][$loops1]);
    $nameVariantImage  = $variant->id . '-' . date('ymdHis') . ($loops1 + 1) . '.' . $variantImage->getClientOriginalExtension();
    $uploadVariant     = $imageUpload->upload($variantImage, $nameVariantImage);
    $variantimages          = New ProductImage;
    $variantimages->product_id = $product->id;
    $variantimages->product_variant_id = $variant->id;
    $variantimages->images  = $uploadVariant;
    $variantimages->save();
    }
1 Answers

It's better using foreach for the looping, so based your request data the code will be like:

foreach ($request->variant as $varian) {
    foreach ($varian['img'] as $k => $image) {
        $nameVariantImage                  = $variant->id.'-'.date('ymdHis').($k + 1).'.'
            .$image->getClientOriginalExtension();
        $filePath                          = Storage::putFileAs(
            "products/variant",
            $image,
            $nameVariantImage
        );
        $variantimages                     = new ProductImage;
        $variantimages->product_id         = $product->id;
        $variantimages->product_variant_id = $variant->id;
        $variantimages->images             = $filePath;
        $variantimages->save();
    }
}
Related