首页 文章

在 foreach 循环中的 Laravel getClientOriginalName

提问于
浏览
2

我不能称这种方法

getClientOriginalName

在这个循环里面

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();
        }

我收到以下错误:

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

如果我 dd($scenesImagesData)我得到这个:

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

这是我选择的文件。

因此,我确实有一个

enctype="multipart/form-data"

在我的形式。

如果我print_r($scenesImagesData);

我得到以下:

数组([12] => SymfonyComponentHttpFoundationFileUploadedFile 对象([13] => [14] => dog.jpg [15] => image/jpeg [16] => 434516 [17] => 0 [18] => C: xampptmpphp786B.tmp [19] => php786B.tmp))

2 回答

  • 1

    所以,你有一个数组内的对象,所以试试这个:

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

    尝试

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

    要么

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

    其中一个或两个都应该工作。

相关问题