вот такая форма отправляется аяксом:
<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"}
При тестировании на продакшене, возвращает пустой массив почему-то
[]