从Laravel目录获取文件信息

时间:2016-06-06 18:38:04

标签: file laravel-5 info

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

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

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

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

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