Yii2 实用基础学习笔记(九):单文件上传 [ 2.0 版本 ]
新建 Upload.php
模型。
<?php
namespace app\models;
use yii\base\Model;
class Upload extends Model{
public $image;
}
新建 UploadController.php
控制器。
<?php
namespace app\controllers;
use yii\web\Controller;
class UploadController extends Controller{
public function actionUpload(){
}
}
新建 upload.php
视图。
<?php
use yii\helpers\Html;
?>
一、Upload.php 模型
- 添加模型验证
public function rules() {
return [
[['image'],'file','skipOnEmpty' => false,'checkExtensionByMimeType' => false,'extensions' => 'jpg,jpeg,png']
];
}
更多验证请参考:http://www.yiichina.com/doc/api/2.0/yii-validators-validator
- 模型添加上传方法
public function upload() {
if($this->validate()){
$this->image->saveAs('../runtime/'.$this->image->baseName.'.'.$this->image->extension);
return true;
} else {
return false;
}
}
二、upload.php 视图
- 添加上传表单
<?=Html::beginForm('','post',['enctype' => 'multipart/form-data']);?>
<?=Html::activeFileInput($model,'image',['class' => 'upload']);?>
<?=Html::submitButton('提交',['class' => 'btn btn-primary']);?>
<?=Html::endForm();?>
三、UploadController.php 控制器
- 引入UploadedFile类和Upload模型命名空间
use yii\web\UploadedFile;
use app\models\Upload;
- 接收操作
public function actionUpload(){
$upload = new Upload();
if(\Yii::$app->request->isPost){
$upload->image = UploadedFile::getInstance($upload,'image');
if($upload->upload()){
echo '上传成功!';
}else{
var_dump($upload->getErrors());
}
}
return $this->render('upload',['model' => $upload]);
}
访问http://localhost/yii2/web/index.php?r=upload/upload
选择一张图片,上传成功!runtime 目录下也存在了刚才上传的图片。
菜鸟CK 北京
注册时间:2015-08-20
最后登录:2020-02-24
在线时长:24小时15分
最后登录:2020-02-24
在线时长:24小时15分
- 粉丝103
- 金钱1110
- 威望110
- 积分2450
共 3 条评论
很喜欢你的教程。。非常清晰,很适合我。辛苦了。
赞一个赞一个
那如果想要上传数据库呢