2
votes

I cannot call this method

getClientOriginalName 

inside this loop

        foreach ($request->file('images', []) as $scenesImagesData) {
            $scenes_images = new ScenesImages($scenesImagesData);
            $scenes_images->product()->associate($product);
            $fileName  = $scenesImagesData->getClientOriginalName();
            $filePath  = $targetPath . '\\' . $fileName;
            $scenes_images->save();
        }

I get following error:

Call to a member function getClientOriginalName() on a non-object

If I dd($scenesImagesData) I get this:

array:1 [▼
  "scenes_images" => UploadedFile {#30 ▼
    -test: false
    -originalName: "dog.jpg"
    -mimeType: "image/jpeg"
    -size: 434516
    -error: 0
  }
]

Which was the file I picked.

Thus I do have a

enctype="multipart/form-data"

in my form.

If I print_r($scenesImagesData);

I get following:

Array ( [scenes_images] => Symfony\Component\HttpFoundation\File\UploadedFile Object ( [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => dog.jpg [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 434516 [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0 [pathName:SplFileInfo:private] => C:\xampp\tmp\php786B.tmp [fileName:SplFileInfo:private] => php786B.tmp ) )

2
Try $fileName = $scenesImagesData['scenes_images']->getClientOriginalName(); - Emeka Mbah

2 Answers

1
votes

So, you have an object inside an array, so try this:

$name = $scenesImagesData['scenes_images']->getClientOriginalName();
0
votes

Try

$scenesImagesData["scenes_images"]->UploadedFile()->originalName

or

$scenesImagesData["scenes_images"]->getClientOriginalName();

one of them or both should work.