Laravel 5.8 - Как переместить файл из каталога хранилища в публичный каталог? - PullRequest
5 голосов
/ 29 июня 2019

Я бы хотел переместить один из моих файлов из директории файлов storage в Laravel в директорию файлов public в laravel, не меняя конфигурацию моей файловой системы. Это возможно?

1 Ответ

3 голосов
/ 29 июня 2019

Да, вы можете сделать это с помощью Storage :: move и public_path () helper.

Storage::move( 'old/file.jpg', public_path('new/file.jpg') );

Обратите внимание, что old/file.jpg относительно your-project/storage/app, поэтому файл, который вы хотите переместить, будет в your-project/storage/app/old/file.jpg


UPDATE

Тем не менее, другим подходом может быть перемещение / сохранение файла в laravel-project/storage/app/public.

А затем сделать его доступным в общедоступном каталоге по символической ссылке .

После этого все файлы и каталоги внутри laravel-project/storage/app/public будут связаны с каталогом laravel-project/public/storage/. Затем вы можете получить доступ к файлу по URL.

Итак, чтобы сделать это таким образом, переместите файл в хранилище / app / public / folder:

Storage::move( 'old/file.jpg', 'public/movedfiles/file.jpg' );

Создайте символическую ссылку с помощью этой команды ремесленника:

php artisan storage:link

Затем вы можете получить доступ к файлу по URL:

<a href='http://your-domain/storage/movedfiles/file.jpg'>file.jpg</a>

или в лезвии

<a href='{{ asset('storage/movedfiles/file.jpg') }}'>file.jpg</a>
...