PHP File::files()响应返回空对象数组
问题描述
我正在尝试通过文件门面获取我的Laravel应用程序中的文件列表,但它的工作方式并不如预期。
$path = storage_path('path/to/folder/' . $request->folder);
$files = File::files($path);
return response()->json($files, 200);
这是我正在运行的代码。目录中当前有5个文件,我正在用它来进行测试。
响应以数组形式显示了正确的文件数量,但所有文件都是空的。
我所指定的路径是正确的,文件存在,并且添加/删除文件在响应中也正常反映。但是我不明白为什么对象是空的。
我错过了什么?
解决方案
通过访问SplFileInfo
对象的属性和方法,您可以获取关于目录中文件的信息。
$path = storage_path('path/to/folder/' . $request->folder);
$files = File::files($path);
$fileDetails = [];
foreach ($files as $file) {
$fileDetails[] = [
'name' => $file->getFilename(),
'path' => $file->getRealPath(),
'size' => $file->getSize(),
'lastModified' => $file->getMTime(),
];
}
return response()->json($fileDetails, 200);