Где сохранять файлы в структуре папок Laravel 5?


У меня есть проект Laravel, который сохранит файлы (txt или csv) после выполнения некоторых вычислений.

Я ищу рекомендации по сохранению этих файлов. Может быть /ресурсы/csv/...?

Второй вопрос: как было бы лучше всего ссылаться на этот путь из классов? Настройка пути abs в файле .env? Существует ли метод laravel, который вернет путь к ресурсам?

Author: jedrzej.kurylo, 2015-08-14

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');
 20
Author: jedrzej.kurylo, 2015-08-14 08:20:53

Вы можете сохранять файлы в папке хранения.

Например:

Вы можете создать папку с именем csv в папке хранилища и получить следующий путь:

storage_path().'/csv';

Вы можете найти папку хранения в

Laravel 4.2: приложение>хранилище
Laravel 5+: в корневом каталоге

 4
Author: Hasan Tareque, 2015-08-14 08:16:49