Как загрузить изображение в yii2 - PullRequest
0 голосов
/ 28 июня 2018

У меня есть одна проблема в yii2, когда я использую

$model = Client::find()->where('id=1')->one();
UploadedFile::getInstance($model, 'logo');

тогда это gitme NULL значение. Почему я получаю NULL, если я печатаю $_FILES, и я вижу значения массива. Я использую простой файл загрузки в yii2

Мой взгляд:

$form = ActiveForm::begin(['action' => ['center/updatelogo'], 'layout' => 'horizontal', 'options' => ['enctype' => 'multipart/form-data']]);
echo $form->field($model, 'logo')->widget(FileInput::classname(), [
    'options' => ['accept' => $model->logo, 'class' => 'form-control'],
    'pluginOptions' => [
        'allowedFileExtensions' => ['png', 'jpg'],
        'maxFileSize' => 25000,
    ],
]);

Мой контроллер:

$model = Client::find()->where('id=1')->one();
if (Yii::$app->request->isPost) {
    $model->file = UploadedFile::getInstance($model, 'logo');
    if ($model->validate()) {
        $model->file->saveAs('logos/' . $model->file->baseName . '.' . $model->file->extension);
    }
}
var_dump($file);die();

Мне нужно загрузить один файл на сервер mi и поставить логотип, что случилось?

мой $ _POST и мои $ _FILES:

array(2) {
  ["_csrf"]=>
  string(88) "WF67odQ_DUylcUprRN9FssjEdq5nBn2ARrjjql_D8af6Y1am1ID7AEG5KV2iWNL-7QeEoeGF_UJQYxnH6JgS1A=="
  ["Center"]=>
  array(1) {
    ["logo"]=>
    string(0) ""
  }
}

array(1) {
  ["Center"]=>
  array(5) {
    ["name"]=>
    array(1) {
      ["logo"]=>
      string(19) "Libre Albedrío.jpg"
    }
    ["type"]=>
    array(1) {
      ["logo"]=>
      string(10) "image/jpeg"
    }
    ["tmp_name"]=>
    array(1) {
      ["logo"]=>
      string(14) "/tmp/phpYijyXv"
    }
    ["error"]=>
    array(1) {
      ["logo"]=>
      int(0)
    }
    ["size"]=>
    array(1) {
      ["logo"]=>
      int(19900)
    }
  }
}
...