在yii2上传html输入文件

时间:2016-11-21 11:58:37

标签: yii2 yii2-advanced-app

我希望从html字段上传多个图片,这里是查看代码:

   <input type="file" name="file[]" multiple id="file"/>

我的问题在于控制器,因为每个yii2的开发人员都以简单的方式知道上传文件的这些代码:

        $model->logoFile = UploadedFile::getInstance($model, 'logoFile');
        $model->logoFile->saveAs('uploads/' . $model->logoFile->name);
        $model->logoImage = $model->logoFile->name;

但在我的情况下,图像并非来自yii字段,而是这个:

    <?= $form->field($model, 'image')->fileInput() ?>

所以任何想法如何修复我的控制器获取多个图像并保存在服务器中

注意:我的模板是先进的。

2 个答案:

答案 0 :(得分:1)

注意:在您的视图中,您使用的是普通的html文件上传,名称为file

我建议,以yii2方式改变它

 <?= $form->field($model, 'logoFile[]')->fileInput(['multiple' => true, 'class' => 'btn btn-default '])->label("Attachment"); ?>

还要处理视图和模型中使用的变量

<强>模型

//public $logoFile;
public function rules() {
        return [
            [['logoFile'], 'file', 'maxFiles' => 4],
]

}

<强>控制器

 $model->logoFile = \yii\web\UploadedFile::getInstances($model, 'logoFile');

 foreach ($model->logoFile as $file) {
    $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);
}

答案 1 :(得分:0)

$files = \yii\web\UploadedFile::getInstancesByName('file');

返回使用名为“file”的输入字段发送的文件数组。