Yii2.0-多文件上传

时间:2022-10-05 09:39:25

Yii2.0-多文件上传

Yii2.0-多文件上传Yii2.0-多文件上传
Yii2.0-多文件上传Yii2.0-多文件上传

创建控制器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

<?php
namespace 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

<?php
use 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() ?>