[Laravel 5.2] Файл хранилища не найден, даже если он существует

\Storage::disk('verify_files')->put('verify-' . $fileCode[3], $fileCode[0]);

$attach = \Storage::get(storage_path('app/public/verify') . '/' . 'verify-' . $fileCode[3]);

Я использую приведенный выше код для генерации и получения файла.

Вот файловая система, которую я использую:

'verify_files' => [
'driver' => 'local',
'root' => storage_path('app/public/verify'),
'visibility' => 'public',
],

Когда я проверяю это с помощью file_exists (), он возвращает true, но laravel возвращает FileNotFoundException in FilesystemAdapter.php line 61:

Я что-то здесь упускаю?

0

Решение

get Метод хранения фасада автоматически заглянет в каталог диска по умолчанию. В этом случае вы передаете абсолютный путь к файлу, используя storage_path, который является избыточным, потому что он будет смотреть внутрь storage/app каталог как есть.

Вместо этого делай Storage::disk('verify_files')->get('verify-' . $fileCode[3]);

использование storage_path когда вам нужны абсолютные пути к файлам и каталогам.

2

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

Я получил ту же ошибку, что и вы, за исключением того, что я использовал другой метод для вас:

            $parse = new Parsedown();
$url = url('about.md'); // This would fail, because it returns absolute
$url = 'about.md'; // the file is living in the root directory of public. This would succeed, because it's relative

try { // catch file not found errors
$about = File::get($url);
} catch (Illuminate\Filesystem\FileNotFoundException $exception) {
die ('Bad File');
}

echo $parse->text($about);

Это произошло от комбинации эта страница и когда @SArnab выше упомянул о пути, не обязательно быть абсолютным.

Кроме того, что я использовал другой метод, единственной проблемой, с которой я столкнулся раньше, было то, что я использовал абсолютный путь, а не относительный, который я использую сейчас.

Я просто подумал, что добавлю этот альтернативный метод для получения содержимого файла в Laravel 5.2.

Наслаждайтесь!

0

По вопросам рекламы [email protected]