MD. RONY AHMED
MD. RONY AHMED

Reputation: 78

Insert Multiple Rows in Laravel (Image Upload Issues)

In my application, I have faced several issues when I try to insert multiple rows of data into a database in laravel 8. Basically this issues is related to image upload. I have add related code to get help.

Controller View:

        foreach($request->param_img as $key => $param_img){
         $data = new PortfolioParam;
         $data->param_desc = $request->param_desc[$key];
   

    if($request->hasfile('param_img')){
        $file = $request->file('param_img');
        $extension = $file->getClientOriginalExtension();
        $filename = time().'.'.$extension;
        $file->move('upload/portfolio_param/', $filename);
        $portfolio->param_img = $filename; 
    }

    $data->portfolio_id = $portfolio->id;
    $data->save();
}

Blade View:

<td class="pl-0 border-0">
 <textarea class="form-control" name="param_desc[]" id="" cols="30" rows="3"></textarea>
</td>
<td class="border-0">
 <input type="file" class="form-control" name="param_img[]">
</td>

Error

Call to a member function getClientOriginalExtension() on array

How can I get rid of this problems??

Upvotes: 0

Views: 265

Answers (1)

lalit bafna
lalit bafna

Reputation: 26

You have looped through the image but you have not used it in your image uploading code. You are still using the request data. Check this out, hopefully it helps.

    // $file = $request->file('param_img');
    $file = $param_img;
    $extension = $file->getClientOriginalExtension();
    $filename = time().'.'.$extension;
    $file->move('upload/portfolio_param/', $filename);
    $portfolio->param_img = $filename; 

Upvotes: 1

Related Questions