0

我使用以下方法从文件夹中获取所有文件,并且我的方法返回有关目录内文件的一些基本信息

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'] = ....
4

2 回答 2

1

你可以使用 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);
}
于 2016-06-06T20:53:06.610 回答
0

您可以按如下方式修改您的代码:

foreach ($filesInFolder as $path) {
   $file = pathinfo($path);
   $file['size'] = File::size($path);
   $file['name'] = File::name($path);
   $files[] = $file;
}
于 2016-06-06T20:49:02.650 回答