РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
771 of 1392 menu

Метод putFile

Метод putFile применяется к фасаду Storage и предназначен для сохранения загруженных файлов в файловую систему. Первым параметром передаётся путь к директории, вторым - объект загруженного файла (экземпляр UploadedFile). Третьим параметром можно передать опции в виде массива. Метод возвращает путь к сохранённому файлу относительно корня диска.

В отличие от метода put, который требует указания полного имени файла, putFile автоматически генерирует уникальное имя для сохраняемого файла, что предотвращает конфликты имён. Имя генерируется на основе MD5-хеша содержимого файла и его оригинального расширения.

По умолчанию метод сохраняет файлы в приватный режим доступа. Для публичного доступа можно использовать метод putFilePublicly или передать опцию 'visibility' => 'public' в третьем параметре.

Синтаксис

<?php use Illuminate\Support\Facades\Storage; Storage::putFile($path, $file, $options); ?>

Пример

Давайте сохраним загруженный файл в директорию 'avatars':

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class UserController extends Controller { public function uploadAvatar(Request $request) { $file = $request->file('avatar'); $path = Storage::putFile('avatars', $file); echo $path; } } ?>

Результат выполнения кода при загрузке файла 'photo.jpg':

"avatars/o5wFhG0EJTcxMsHd0l4G6dyb6Vfhe4dDuJnmCjHg.jpg"

Пример

Давайте сохраним файл с указанием публичной видимости:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class FileController extends Controller { public function uploadPublicFile(Request $request) { $file = $request->file('document'); $path = Storage::putFile('documents', $file, ['visibility' => 'public']); echo $path; } } ?>

Результат выполнения кода:

"documents/6j7KfgtY5Ux9TqzfGR3KBs0ySVrqT9uZxghX8pKH.pdf"

Пример

Давайте используем метод putFile с указанием конкретного диска:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class MediaController extends Controller { public function uploadToPublic(Request $request) { $file = $request->file('image'); $path = Storage::disk('public')->putFile('images', $file); echo $path; } } ?>

Результат выполнения кода:

"images/Kd4mZfX9P6C1t7VpE8c3WlQ0nJxR5yA2uFgH3bD8.png"

Смотрите также

  • класс Storage,
    который предоставляет фасад для работы с файловыми системами
  • метод put,
    который сохраняет файл с указанным именем
  • метод putFileAs,
    который сохраняет файл с пользовательским именем
  • метод store,
    который является альтернативой для сохранения загруженных файлов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить