获取文件信息表单目录Laravel

Get file information form directory Laravel

我使用以下方法从文件夹中获取所有文件,我的方法returns关于目录中文件的一些基本信息

public function getUploaded()
{

    $files = [];
    $filesInFolder = File::files(base_path() .'/'. self::UPLOAD_DIR);

    foreach($filesInFolder as $path)
    {
        $files[] = pathinfo($path);
    }

    return response()->json($files, 200);
}

我怎样才能得到像这样的大小和基本名称?

$files['name'] = ....
$files['size'] = ....

您可以修改您的代码如下:

foreach ($filesInFolder as $path) {
   $file = pathinfo($path);
   $file['size'] = File::size($path);
   $file['name'] = File::name($path);
   $files[] = $file;
}

您可以使用 Laravel 集合和 SplFileInfo 巧妙地解决这个问题。以下几行;

public function getUploaded()
{
    $files = collect(File::files(base_path() . "/" . self::UPLOAD_DIR))->map(function ($filePath) {
        $file = new \SplFileInfo($filePath);
        return [
            'name' => $file->getName(),
            'size' => $file->getSize(),
        ];
    });

    return response()->json($files);
}