@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() автоматически генерирует уникальное имя файла и сохраняет его в указанную директорию.