首页 > 开发 > PHP > 正文

Yii2.0多文件上传实例说明

2024-05-04 22:46:27
字体:
来源:转载
供稿:网友

这里写图片描述 
这里写图片描述这里写图片描述

创建控制器FormController

<?php namespace frontend/controllers;use Yii;use yii/web/Controller;use frontend/models/Uploadm;use yii/web/UploadedFile;class FormController extends Controller{  public function actionMyfiles(){      $model=new Uploadm();      return $this->renderPartial('myfiles',['model'=>$model]);  }  public function actionGetfiles(){    $model = new Uploadm();    if (Yii::$app->request->isPost) {      $model->imgFile = UploadedFile::getInstances($model, 'imgFile');      if ($model->upload()) {        // 文件上传成功        echo '上传成功';      }    }  }

创建模型Uploadm.php

<?phpnamespace frontend/models;use Yii;use yii/base/Model;use yii/web/UploadedFile;class Uploadm extends Model{  public $imgFile;  public function rules(){    return [       [['imgFile'], 'file','maxFiles' => 5],//最多5张    ];  }  public function upload()  {   if ($this->validate()) {      foreach ($this->imgFile as $file) {       $file->saveAs('uploads/' . $file->baseName . '.' . $file->extension);     }     return true;   } else {     return false;   }  }} 

创建视图/views/form/myfiles.php

<?phpuse yii/helpers/Html;use yii/widgets/ActiveForm;$form = ActiveForm::begin([  'id' => 'login-form',  'options' => ['class' => 'form-horizontal','enctype' => 'multipart/form-data'],  'action'=>'?r=form/getfiles',  'method'=>'post']) ?>  <?= $form->field($model, 'imgFile[]')->fileInput(['multiple' => true]) ?>  <div class="form-group">    <div class="col-lg-offset-1 col-lg-11">      <?= Html::submitButton('上传', ['class' => 'btn btn-primary']) ?>    </div>  </div><?php ActiveForm::end() ?>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表