Laravel проверить, если хранилище не работает

Я пытаюсь проверить, существует ли файл в хранилище,

if(Storage::exists($request->file_name)):
dd(var_dump("it did exist"));
else:
dd(var_dump("it did not exist"));
endif

но он всегда возвращает строку «он существует», даже если файл фактически удален или файл не существует, какие-либо идеи, помогите?

Я уверен, что нет проблем с настройкой моего хранилища, так как у меня нет проблем при загрузке файла в хранилище,

Storage::put($file_name, File::get($file));

PS: я на Laravel 5.0

ОБНОВИТЬ:

вот мой filesystems.php из папки config моего Laravel 5.0

<?php

return [

/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| Here you may specify the default filesystem disk that should be used
| by the framework. A "local" driver, as well as a variety of cloud
| based drivers are available for your choosing. Just store away!
|
| Supported: "local", "s3", "rackspace"|
*/

'default' => 'local',

/*
|--------------------------------------------------------------------------
| Default Cloud Filesystem Disk
|--------------------------------------------------------------------------
|
| Many applications store files both locally and in the cloud. For this
| reason, you may specify a default "cloud" driver here. This driver
| will be bound as the Cloud disk implementation in the container.
|
*/

'cloud' => 's3',

/*
|--------------------------------------------------------------------------
| Filesystem Disks
|--------------------------------------------------------------------------
|
| Here you may configure as many filesystem "disks" as you wish, and you
| may even configure multiple disks of the same driver. Defaults have
| been setup for each driver as an example of the required options.
|
*/

'disks' => [

'local' => [
'driver' => 'local',
'root'   => storage_path().'/employee_documents/',
],

's3' => [
'driver' => 's3',
'key'    => 'your-key',
'secret' => 'your-secret',
'region' => 'your-region',
'bucket' => 'your-bucket',
],

'rackspace' => [
'driver'    => 'rackspace',
'username'  => 'your-username',
'key'       => 'your-key',
'container' => 'your-container',
'endpoint'  => 'https://identity.api.rackspacecloud.com/v2.0/',
'region'    => 'IAD',
],

],

];

1

Решение

Я действительно не знаю причину, почему это не работает в вашем случае. Я попробовал на своей машине, она работает нормально.

Я пытался отладить, что внутри Storage::exits он использует то же самое return file_exists($path);

Это может быть причиной

Результаты file_exists () кэшируются

Попробуй эти вещи

  1. Конфигурация php artisan: кеш
  2. PHP кэш ремесленника: очистить
  3. php artisan view: очистить
  4. chmod -R 777 хранилище / или chown -R webuser: хранилище веб-пользователя /
1

Другие решения

if(File::exists('filePath')){
dd(var_dump("it did exist"));

}else{
dd(var_dump("it did not exist"));
}

Пожалуйста, попробуйте код выше

0

Это может помочь вам. Это работает с Laravel5.4:

Storage::exists('dir/'. $filename)
0
По вопросам рекламы [email protected]