есть представление
<?php use yii\helpers\Html;
use yii\widgets\ActiveForm; ?>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model, 'files')->fileInput(); ?>
<div class="form-group">
<?= Html::submitButton( Yii::t('app','CREATE'), [ 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
которое рендерится в такую форму
<form id="w0" action="/admin/gods/parser" method="post" enctype="multipart/form-data">
<input name="_csrf-backend" value="VUxobVRobngsYS8DbCAJNg8NBy5sDBpKeBUJLDMsXR5hYRw/LDoKAg==" type="hidden">
<div class="form-group field-parser-files has-success">
<label class="control-label" for="parser-files">Files</label>
<input name="Parser[files]" value="" type="hidden">
<input id="parser-files" name="Parser[files]" type="file">
<div class="help-block"></div>
</div>
<div class="form-group">
<button type="submit" 0="btn btn-primary">CREATE</button>
</div>
</form>
пытаюсь передать файл получаю
Bad Request (#400)
в дебагере
$_POST, $_FILES
пустые (я так понимаю из за csrf) вот такая кука
_backendIdentity '423f79f516d6a8d78865449ca435c5647a7789a03ba248969a67d16769573572a:2:{i:0;s:16:\"_backendIdentity\";i:1;s:46:\"[6,\"VzbzK9z_E91wc53eZcpgR3zpCircJXzm\",1209600]\";}'
BACKENDSESSID '7ho5ksl3h1ruicmnpl4tum4df7'
_frontendIdentity '46fb95bc6a4f9a13529776ffe76bff408d289e768e2b28bcd0a6bda37d76304ca:2:{i:0;s:17:\"_frontendIdentity\";i:1;s:46:\"[6,\"VzbzK9z_E91wc53eZcpgR3zpCircJXzm\",1209600]\";}'
_csrf-backend '0103833d315b6d4786857f9eec26e1de752e73aaa8cfad01bd095e0628ce45c1a:2:{i:0;s:13:\"_csrf-backend\";i:1;s:32:\"y-Gn8HgNZAoC8dt2-YaAgD3f4-tRxRdz\";}'
а в
Request Body
все содержание файла. не подскажите что я делаю не так
вот контролер
public function actionParser()
{
$execelparser = new Parser();
if ($execelparser->load(Yii::$app->request->post())) {
$parsers = Yii::$app->request->post('Parsers');
$execelparser->files = UploadedFile::getInstance($execelparser, 'files');
$years = date('Y');
$mounts = date('m');
$path = 'files';
$files_to = TransliteratorHelper::process($execelparser->files->name, '', 'en');
if (file_exists(Yii::getAlias('@frontend/web/') . $path . '/' . $years . '/' . $mounts . '/')) {
} else {
mkdir(Yii::getAlias('@frontend/web/') . $path . '/' . $years . '/' . $mounts . '/', 0777, true);
}
foreach ($execelparser->files as $file) {
$files_to = TransliteratorHelper::process($execelparser->files->name, '', 'en');
if ($execelparser->upload($path, $years, $mounts, $files_to)) {
$xmlParse= $execelparser->XMLparses(Yii::getAlias('@frontend/web/').$path.'/'.$years.'/'.$mounts.'/'.$files_to);
}
}
return var_dump($files_to);
}else{
return $this->render('parser',[
'model' => $execelparser
]);
}
вот модель
class Parser extends Model
{
public $files;
public function rules()
{
return [
[['files'], 'file', 'skipOnEmpty' => true, 'extensions' => 'xml, yml']
];
}