Загрузка картинок в laravel через ajax

HTML @csrf method=post

<input class="show-for-sr" type="file" id="upload_imgs" name="upload_imgs[]" multiple>

JS

$.ajax({
    url: $(this).attr('action'),
    method: "POST",
    data: new FormData(this),
    dataType: 'JSON',
    contentType: false,
    cache: false,
    processData: false,
    success: function(data) {
        console.log('gg ', data);
    }
});

Controller

if ($_POST) {
    $path = $request->file('upload_imgs');
    return dd($path); // возвращает без ошибок
}

Как только хочу сказать нашему фреймворку что нужно поместить файлы в папку public/folder возникает ошибка.

$path = $request->file('upload_imgs')->store('public/article-images');

Ответы (1 шт):

Автор решения: UKRman

Всьо правильно - метод store() находиться в объекте UploadedFile ( i.imgur.com/4cBXDU5.png ), а метод file() переменой $request может возвращать как экземпляр объекта UploadedFile так и массив экземпляров ( i.imgur.com/HES3GQb.png ), и как вы возможно уже догадываетесь, вы пытаетесь вызвать метод store() в массива) Нужно написать проверку, на то являет сали результат метода file() массивом объектов, и в случае чего запускать цикл для сохранения по штучно.

→ Ссылка