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

Почему в POST не приходят данные на сервер yii2?

вот такая форма отправляется аяксом:

<form id="myForm">
                    <input id="idmodel" type="hidden" name="idmodel" value="28254">
                    <input id="myFiles" name="myFiles" type="file" size="1"/>
                </form>


вот такой аякс запрос:

var urlPrefix = 'http://site.com/';
    var url = urlPrefix + 'dev/my-function';

    $.ajax({
        type: 'post',
        url: url,
        data: formData,
        cache: false,
        contentType: false,
        processData: false,
        xhr: function () {
            var xhr = $.ajaxSettings.xhr(); // получаем объект XMLHttpRequest
            xhr.upload.addEventListener('progress', function (evt) { // добавляем обработчик события progress (onprogress)
                if (evt.lengthComputable) { // если известно количество байт
                    // высчитываем процент загруженного
                    var percentComplete = Math.ceil(evt.loaded / evt.total * 100);
                    // устанавливаем значение в атрибут value тега <progress>
                    // и это же значение альтернативным текстом для браузеров, не поддерживающих <progress>
                    // progressBar.val(percentComplete).text('Загружено ' + percentComplete + '%');

                    console.log('percentComplete: ', percentComplete);
                }
            }, false);
            return xhr;
        },
        success: function (data) {
            console.log(data);
        }

    });


код в контроллере:

public function actionMyFunction()
    {
        $key = Yii::$app->request->post();
        return json_encode($_POST);
        $file = $_FILES;
        $id = $key['idmodel'];
        $model = $this->findModel($id);
        $model->myFiles = UploadedFile::getInstanceByName('myFiles');
        return json_encode($model->myUpload());
        if ($model->myUpload()) {
            return ($model->save(false));
        }
    }


При тестировании локально возвращает корректные данные: {"idmodel":"28254"}

При тестировании на продакшене, возвращает пустой массив почему-то []
  • Вопрос задан
  • 779 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
usdglander
@usdglander
Yipee-ki-yay
Ну очевидно, что на продакшене файл не влезает в post-запрос. Нужно увеличить
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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