Yii2使用表单上传文件的实例代码
yii2用表单上传文件经常用到的,该怎样上传呢? 1、单个文件上传首先建立一个模型models/UploadForm.php,内容如下 use yiibaseModel;use yiiwebUploadedFile; /**
/**
再建立一个视图文件,内容如下 <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> <?= $form->field($model,'file')->fileInput() ?> <?php ActiveForm::end() ?> 最后建立控制器文件,内容如下 use Yii;use yiiwebController; use appmodelsUploadForm; use yiiwebUploadedFile; class SiteController extends Controller
} 注意这里我们没有用model->load(...),而是用了UploadedFile::getInstance(...)。区别是后者不会执行$model->validate(),所以需要手动的去执行$model->validate()来检验数据的合法性。如果检验通过了,上传的文件保存在uploads文件夹下,即web目录下的uploads里。 一些可选的配置选项 上传文件不能为空 false],]; }上传类型,不仅可以根据扩展名检验,还可以根据文件的内容进行检验 'jpg,png','mimeTypes' => 'image/jpeg,image/png',],]; }2、多文件上传如果你想一次上传多个文件,只需调节几个参数就可以达到目的 Model: /**
View: $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]);?> <?= $form->field($model,'file[]')->fileInput(['multiple' => true]) ?> <?php ActiveForm::end(); ?> 与单文件上传不同的是下面这句 field($model,'file[]')->fileInput(['multiple' => true])Controller: use Yii;use yiiwebController; use appmodelsUploadForm; use yiiwebUploadedFile; class SiteController extends Controller
} 这样就可以实现多文件上传了。 参考https://github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:西双版纳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |