在Laravel中,如何获取公用文件夹中所有文件的列表?
我想自动生成公用文件夹中所有图像的列表,但我似乎找不到任何可以帮助我执行此操作的对象。
该类似乎是该作业的良好候选项,但它只允许我在公用文件夹外部的存储文件夹中搜索文件。Storage
我想自动生成公用文件夹中所有图像的列表,但我似乎找不到任何可以帮助我执行此操作的对象。
该类似乎是该作业的良好候选项,但它只允许我在公用文件夹外部的存储文件夹中搜索文件。Storage
您可以为存储类创建另一个磁盘。在我看来,这将是您最好的解决方案。
在配置/文件系统中.php磁盘阵列中添加所需的文件夹。本例中的公用文件夹。
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path().'/app',
],
'public' => [
'driver' => 'local',
'root' => public_path(),
],
's3' => '....'
然后,可以通过以下方式使用存储类在公用文件夹中工作:
$exists = Storage::disk('public')->exists('file.jpg');
$exists变量将告诉您公用文件夹内是否存在 file.jpg,因为存储磁盘“public”指向项目的公用文件夹。
您可以将文档中的所有存储方法与自定义磁盘一起使用。只需添加磁盘(“公共”)部分。
Storage::disk('public')-> // any method you want from
http://laravel.com/docs/5.0/filesystem#basic-usage
稍后编辑:
人们抱怨说,我的答案没有给出列出文件的确切方法,但我的意图是永远不会删除一行代码,操作复制/粘贴到他的项目中。我想“教”他,如果我能用这个词,如何使用laravel Storage,而不仅仅是粘贴一些代码。
无论如何,列出文件的实际方法是:
$files = Storage::disk('public')->files($directory);
// Recursive...
$files = Storage::disk('public')->allFiles($directory);
配置部分和背景在上面,在我原来的答案中。
Storage::disk('local')->files('optional_dir_name');
或只是某种类型的文件
array_filter(Storage::disk('local')->files(), function ($item) {
//only png's
return strpos($item, '.png');
});
请注意,laravel 磁盘具有 和 。 是递归的。files()
allfiles()
allfiles