文档章节

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

程序谱写人生
 程序谱写人生
发布于 2016/07/19 09:34
字数 266
阅读 8
收藏 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

upload.png

选择一张图片,上传成功!runtime目录下也存在了刚才上传的图片。

© 著作权归作者所有

共有 人打赏支持
程序谱写人生
粉丝 3
博文 72
码字总数 70844
作品 0
海淀
程序员
私信 提问
技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳
2015/11/24
78
0
实用的Laravel Debug调试工具

转载请注明: 转载自Yuansir-web菜鸟 | LAMP学习笔记 本文链接地址: 实用的Laravel Debug调试工具 主要推荐laravel几个适合开发调试用的工具 1.Clockwork 首先Chrome 插件 Clockwork 安装 Co...

Yuansir
2015/01/19
0
2
Yii学习笔记:利用setFlash和runController打造个性化的提示信息页面

在实现Yii::success()这样的调用方式之前,你可能需要阅读我的这篇博文: 《Yii学习笔记:扩展YiiBase入口类》 之后请继续往下看: 首先我们在yii.php的Yii类里面添加两个方法: /** 成功提示...

吾爱
2013/12/28
0
0
Yii2 Day 4: 模块化开发

做了几年Windows环境下程序开发(大概200多个模块,几百万行代码),转做PHP Web开发后,发现模块级别的代码重用实在是不如意啊,重用基本上都是代码复制粘贴级别的,耦合度都太高,不利于代...

_Elvis
2014/12/04
0
4
yii2解决百度编辑器umeditor图片上传问题

作者:白狼 出处:http://www.manks.top/article/yii2umeditor_upload 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任...

白狼栈
2016/04/17
76
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部