Anon3363
@Anon3363

FormData вернул пустой объект, отчего такое может быть?

Пытаюсь отправить файл на сервер Laravel ajax'ом.

Вот JS
$('#update_products').on('submit',function(event){
        event.preventDefault()
        console.log(data)
        $.ajax({
            url:'/UpdateProduct',
            type:'POST',
            data:new FormData(this),
            dataType:'JSON',
            contentType: false,
            cache: false,
            processData: false,
            success:function(data){
                console.log(data)
            }
        })
    })

и вот такой у меня HTML
<form enctype="multipart/form-data" id="update_products" method="post">
<div class="js--image-preview"></div>
											<div class="upload-options">
												<label class="upload-lbl" for="photo1">
												</label>
											</div>
										</div>
										<input type="file" class="product-image-upload" accept="image/*" name="images[]" id="photo1"/>
</form>
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
Yadalay
@Yadalay
Php, Mysql, Html, Css, Js/Jquery/Ajax, Laravel
let $form = $('#update_products');

$form.on('submit', function (event) {
    event.preventDefault();

    let formData = new FormData($form[0]);

    $.each($('.product-image-upload')[0].files, function (j, file) {
        formData.append('images[' + j + ']', file);
    });

    $.ajax({
        url: '/UpdateProduct',
        type: 'post',
        data: formData,
        contentType: false,
        cache: false,
        processData: false,
        success: function (data) {
            console.log(data);
        }
    });
});

И в input добавить multiple:
<input type="file" class="product-image-upload" accept="image/*" name="images[]" id="photo1" multiple>

В контроллере:
if ($request->hasFile('images')) {
    $files = $request->file('images');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы