Задать вопрос
@arm_9796

Не отправляются файлы на сервер через BX.ajax.runComponentAction, в чем может быть проблема?

$_FILES пустой после отправки запроса, остальные данные передаются нормально в запросе, только файлы не отправляются.

здесь видно что все идет в FormData приходит все
63f7278031d86418014576.jpeg

а в запросе где массив files ничего не приходит,на остальные input не обращайте внимание,я просто не заполняю их и проверяю пока ,что с файлом происходит.

63f72997a39ee713119402.jpeg

Вот заголовки запроса ,может с content-type что то не так,но я не смог понять как правильно сменить на multiple/formdata

63f72b9848763228898545.jpeg

<div class="mb-3 col-3">
            <input class="form-control" type="file" multiple name="files[]">
        </div>


let files = document.querySelector('input[name="files[]"]').files
        for (let i = 0; i < files.length; i++) {
            Data.append(files[i].name,files[i],files[i].name)
        }

        let Data = new BX.ajax.FormData()

        BX.ajax.runComponentAction('dev:SendForm', 'sendForm',{
            mode: 'class',
            method: 'POST',
            data: {data:data},
            }).then(data => {
           console.log(Data)
        }, (reason) => {
            console.log(Data)
            }).catch((error) => {
                console.log(Data)
        })
    })
  • Вопрос задан
  • 1590 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
Starina_js
@Starina_js
full-stack web dev
Эту ветку смотрели?

BX.ajax.runComponentAction('componentName', "actionName", {
    mode: 'ajax',
    data: new FormData(form)
})


use \Bitrix\Main\Application;
$request = Application::getInstance()->getContext()->getRequest();
$files = $request->getFileList()->toArray();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы