@jose
В Laravel для загрузки нескольких файлов можно использовать метод store()
на экземпляре объекта IlluminateHttpUploadedFile
, который позволяет загружать файлы на сервер.
Для загрузки нескольких файлов необходимо использовать массив с ключом, соответствующим имени поля формы, а значением - массивом из экземпляров IlluminateHttpUploadedFile
.
Пример кода для загрузки нескольких файлов:
1 2 3 4 5 6 7 8 9 10 11 12 |
public function uploadFiles(Request $request) { $files = $request->file('files'); foreach ($files as $file) { $filename = $file->getClientOriginalName(); $path = $file->store('uploads'); // сохранение информации о файле в базе данных } // возврат ответа } |
В этом примере метод file()
получает массив файлов, загруженных с помощью поля формы с именем files
. Затем мы проходимся по каждому файлу в цикле, сохраняем его на сервере и сохраняем информацию о файле в базе данных.
Обратите внимание, что необходимо добавить соответствующие правила валидации для полей формы, чтобы убедиться, что загружаемые файлы соответствуют требованиям вашего приложения.
@jose
Кроме массива можно использовать объект итератора FileBag. В Laravel существует специальный класс UploadFileServiceProvider, который регистрирует некоторые настройки и методы для работы с загрузкой файлов. Чтобы воспользоваться этим классом, нужно в файле config/app.php в массиве 'providers' добавить строчку 'IlluminateFoundationProvidersUploadFileServiceProvider', затем выполнить команду composer dumpautoload. Далее можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public function uploadFiles(Request $request) { $files = $request->file('files'); foreach ($files as $file) { if ($file->isValid()) { $filename = $file->getClientOriginalName(); $path = $file->store('uploads'); // Сохранение информации о файле в базе данных } } // Возврат ответа } |
Здесь мы используем метод isValid() для проверки корректности загрузки файла. Если файл корректен, мы сохраняем его на сервере с помощью метода store(). Метод store() автоматически генерирует уникальное имя файла и сохраняет его в указанную директорию.