如何检查目录是否存在于laravel中的Storage :: facade?

时间:2016-05-10 09:38:55

标签: file laravel storage

对应的是什么:

if (!File::exists($path))

在Laravel 5.1中使用Storage::

任何?

14 个答案:

答案 0 :(得分:25)

试试这个:

// To check if File exists in Laravel 5.1
$exists = Storage::disk('local')->has('file.jpg');

// To check if File exists in Laravel 5.2
$exists = Storage::disk('local')->exists('file.jpg');

答案 1 :(得分:10)

如果您想检查目录是否存在并创建一个目录(如果该目录不存在),则此代码将适用于您。

if(!Storage::exists('/path/to/your/directory')) {

    Storage::makeDirectory('/path/to/create/your/directory', 0775, true); //creates directory

}

答案 2 :(得分:8)

如果要查看目录,请尝试以下操作:

if (Storage::directories($directory)->has('someDirectory')) {
    ....

https://laravel.com/docs/5.1/filesystem#directories

https://laravel.com/docs/5.1/collections#method-has

答案 3 :(得分:2)

$exists = Storage::disk('local')->has('**dirname**');

答案 4 :(得分:2)

在laravel 5.4中 $exists = Storage::disk('public')->exists('images/test_image.jpg');   - 使用'public'在filesystem.php中配置

'public' => [
    'driver' => 'local',
    'root'   => public_path(),
    'url' => env('APP_URL').'/public',
    'visibility' => 'public',
],

'images/test_image.jpg'是图像的路径。

答案 5 :(得分:2)

laravel 5.5使用Storage Facade的另一种方法。

use Illuminate\Support\Facades\Storage;
if(Storage::exists('/mnt/files/file.jpg')) {
    dd('file esxists');
} else {
    dd('no file found');
}

答案 6 :(得分:1)

您可以轻松使用Storage::isDirectory()Storage::class\Illuminate\Filesystem\Filesystem的实例,它包含方法isDirectory,用于检查给定路径是否存在以及是否为目录。

    if(Storage::isDirectory("images")){
    // you code...
    }

答案 7 :(得分:1)

   if(!Storage::disk('ads')->exists(auth()->user()->id)) {
        Storage::disk('ads')->makeDirectory(auth()->user()->id, 0775, true); //creates directory
    }

答案 8 :(得分:0)

要检查两件事:(1)路径存在,(2)路径是目录。

这将检查路径是否存在(Laravel 5.2+的语法),无论是文件还是目录:

Storage::exists('your-path') // bool

一旦你知道它存在,这将确认路径是一个目录:

Storage::getMetadata('your-path')['type'] === 'dir' 

底层Flysystem库将在检查文件系统(可能是本地或远程)时缓存它,因此在正常情况下这两个函数只会调用一个文件系统。

答案 9 :(得分:0)

您可以通过File Facade File::isDirectory($YOURDIRECTORYPATHHERE);轻松完成此操作,这将根据存在返回布尔值!

答案 10 :(得分:0)

if(!Storage::disk('public')->exists('your folder name'))
{
    //what you want to do
}

答案 11 :(得分:0)

尝试此代码

 if (!file_exists(Storage::path($pathToDir))) {
  Storage::makeDirectory('path to directory', 0775, true); 
    // or any code
  }

答案 12 :(得分:0)

我知道这个答案太老了,但是您可以尝试:

is_dir($path)

参考:https://www.php.net/manual/en/function.is-dir.php

答案 13 :(得分:-1)

您可以将所有目录检索为数组,然后检查目录(路径)是否存在。

$dir = 'dir/path';
$existingDirs = Storage::disk(env('FILE_SYSTEM'))->allDirectories();
if (!in_array($dir, $existingDirs)) {
    // dir doesn't exist so create it
}