您的位置:首页 > 编程语言 > PHP开发

Yii2实用基础学习笔记(九):单文件上传

2016-07-19 00:00 681 查看
摘要: 单文件上传

新建
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目录下也存在了刚才上传的图片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: