尝试解析文件,接收与SplFileInfo有关的错误

时间:2017-08-09 12:05:37

标签: php arrays laravel symfony

我正在使用当前的User对象保存图像,即使我没有产生任何想要的结果。我试图解析一个文件数组,在该数组中,我试图获取名为filename的对象键。

我目前在此文件数组中有2个图像:

array:2 [▼
  0 => SplFileInfo {#219 ▶}
  1 => SplFileInfo {#220 ▶}
]

每个数组键都有一个对象,在该对象中我正在寻找文件名密钥:

filename: "oIWVAvlOyG9yMzhhvTFoYX2wGNTa2pEth7gb228Z.png"

如果真的很重要,我的代码就在Laravel 5.4的控制器上:

public function index(Request $request)
    {
        $user = Auth::user();
        $userImagesPath = public_path().'\\storage\\'.$user->email;
        $userImagesArray = File::allFiles($userImagesPath);
        $contents =[];
        $fileNameArray = [];
        foreach ($userImagesArray as $file){
            $contents[] = $file;
            foreach ($contents as $fileName){
                $fileNameArray[] = $fileName->filename;
            }
        }
        dd($fileNameArray);
        return view('sharmutaView')
            ->with('user', $user);
    }

我收到错误:Undefined property: Symfony\Component\Finder\SplFileInfo::$filename,这清楚地告诉我我没有正确解析。

1 个答案:

答案 0 :(得分:1)

userImagesArray是您提供的数组?

试试这个:

public function index(Request $request)
    {
        $user = Auth::user();
        $userImagesPath = public_path().'\\storage\\'.$user->email;
        $userImagesArray = File::allFiles($userImagesPath);
        $fileNameArray = [];
        foreach ($userImagesArray as $file){
                $fileNameArray[] = $file->getFilename();
            }
        }
        dd($fileNameArray);
        return view('sharmutaView')
            ->with('user', $user);
    }