Где сохранять файлы в структуре папок Laravel 5?
У меня есть проект Laravel, который сохранит файлы (txt или csv) после выполнения некоторых вычислений.
Я ищу рекомендации по сохранению этих файлов. Может быть /ресурсы/csv/...?
Второй вопрос: как было бы лучше всего ссылаться на этот путь из классов? Настройка пути abs в файле .env? Существует ли метод laravel, который вернет путь к ресурсам?
2 answers
/ ресурсы - не лучшее место, так как эта папка используется для исходных файлов и обычно хранится в репозитории исходного кода (например, git).
Файлы, которые генерирует приложение, обычно оказываются где-то в папке /storage - просто создайте там папку /storage/csv.
Вы никогда не должны ссылаться на эти файлы непосредственно из своих классов. Файловые системы Laravel - это то, что вам нужно, - вы можете прочитать о них больше здесь: http://laravel.com/docs/master/filesystem . Они делают операции с файлами (например, чтение, запись, добавление, добавление, удаление, перемещение, получение всех файлов и многое другое...) намного проще.
Начните с определения файловой системы в вашем config/filesystems.php
'disks' => [
'csv' => [
'driver' => 'local',
'root' => storage_path().'/csv',
],
],
Теперь вы можете читать/записывать свои csv-файлы через Хранилище фасад из любого места вашего кода, например:
Storage::disk('csv')->put('file.csv', $content);
$content = Storage::disk('csv')->get('file.csv');
Вы можете сохранять файлы в папке хранения.
Например:
Вы можете создать папку с именем csv в папке хранилища и получить следующий путь:
storage_path().'/csv';
Вы можете найти папку хранения в
Laravel 4.2: приложение>хранилище
Laravel 5+: в корневом каталоге