Полный цикл в digital

Файловое хранилище

Laravel предоставляет мощную абстракцию для работы с файловой системой благодаря php-пакету Flysystem от Франка де Жонге. Настройки файловой системы находятся в файле config/filesystems.php. В нём можно настроить так называемые диски. Каждый диск представляет собой определенный драйвер и место хранения. В конфигурационном файле имеются примеры для каждого поддерживаемого драйвера.

config/filesystems.phpreturn [
    'default' => env('FILESYSTEM_DRIVER', 'local'),

    'disks' => [
        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],
        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],
    ],

    'links' => [
        public_path('storage') => storage_path('app/public'),
    ],
];

Функция storage_path() возвращает полный путь к директории storage. Также можно использовать функцию storage_path() для получения полного пути к указанному файлу относительно директории хранилища:

// вернет полный путь /var/www/server.com/storage
$path = storage_path();
// вернет /var/www/server.com/storage/app/file.txt
$path = storage_path('app/file.txt');

Функция public_path() возвращает полный путь к директории public, которая является корнем веб-сервера и доступна из веб. Также можно использовать функцию public_path() для получения полного пути к указанному файлу или директории:

// вернет полный путь /var/www/server.com/public
$path = public_path();
// вернет /var/www/server.com/public/index.php
$path = public_path('index.php');

Сразу после установки Laravel доступны диски local и public, использующие драйвер local.

  • Для диска local место хранения — директория storage/app
  • Для диска public место хранения — директория storage/app/public

Диск local является диском по умолчанию.

Чтобы сделать файлы диска public доступными через веб, надо создать символьную ссылку из public/storage на storage/app/public. Директория public проекта Laravel — является корневой директорией сервера, поэтому файл storage/app/public/image.jpg будет доступен через веб как http://название_сайта.ru/storage/image.jpg.

php artisan storage:link

Какие символьные ссылки создавать, задается в файле конфигурации config/filesystems.php в разделе links:

config/filesystems.phpreturn [
    'default' => env('FILESYSTEM_DRIVER', 'local'),

    'disks' => [
        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],
        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],
    ],

    'links' => [
        public_path('storage') => storage_path('app/public'),
    ],
];

Когда файл сохранён на диске и создана символьная ссылка, можно создать URL к файлу с помощью хелпера asset() или метода url() фасада Storage.

<img src="{{ asset('storage/images/image.jpg') }}" alt="" />
<img src="{{ Storage::disk('public')->('images/image.jpg') }}" alt="" />
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг