yii使用activeFileField控件实现上传文件与图片的方法


Posted in PHP onDecember 28, 2015

本文实例讲述了yii使用activeFileField控件实现上传文件与图片的方法。分享给大家供大家参考,具体如下:

yii框架提供了activeFileField控件来完成上传文件(当然也包括了上传图片)的操作,下面介绍yii的activeFileField使用方法。

1、函数原型:

public static string activeFileField(CModel $model, string $attribute, array $htmlOptions=array ( ))

2、调用例子:

(1)首先,设置form,这一步一 定要做,把form设置为'multipart/form-data',具体请看我的:

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'books-form',
'enableAjaxValidation'=>false,
'htmlOptions'=>array('enctype'=>'multipart/form-data'),
));
?>

(2) 接着,在view下的form里设置:

<div class="row">
<?php echo $form->labelEx($model,'BookImg'); ?>
<?php echo CHtml::activeFileField($model,'BookImg'); ?>
<?php echo $form->error($model,'BookImg'); ?>
</div>

(3) 如果你想预览图片,那么请注意了,可以加上这么一段:

<div class="row">
<?php echo '图片预览' ?>
<?php echo '<img src="http://www.XXXX.com/'.$model->BookImg.'" style="width:200px;height:300px;"/>'; ?>
</div>

(4)最后,需要在控制类里加上下面的:

if($model->save())
{
$image=CUploadedFile::getInstance($model,'BookImg');
 if (is_object($image) && get_class($image)==='CUploadedFile')
 {
 $image->saveAs("D:/aaa/aa.jpg");//路径必须真实存在,并且如果是linux系统,必须有修改权限
 }
$this->redirect(array('view','id'=>$model->BookId));
}

请注意:这里是添加的时候使用的,修改的话要有所改变。

(5)限制上传的文件必须是图片,还有限制图片大小,那么请到model层里的rules新增这么一句:

array('BookImg', 'file','allowEmpty'=>true,
'types'=>'jpg, gif, png',
'maxSize'=>1024 * 1024 * 1, // 1MB
'tooLarge'=>'The file was larger than 1MB. Please upload a smaller file.',
)

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
Nov 17 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
深入浅析Yii admin的权限控制
Aug 31 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 #PHP
Yii中Model(模型)的创建及使用方法
Dec 28 #PHP
yii数据库的查询方法
Dec 28 #PHP
yii分页组件用法实例分析
Dec 28 #PHP
PHP读取文件内容的五种方式
Dec 28 #PHP
yii用户注册表单验证实例
Dec 26 #PHP
PHP7之Mongodb API使用详解
Dec 26 #PHP
You might like
PHP生成UTF8文件的方法
2010/05/15 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
php绘制一条弧线的方法
2015/01/24 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
javascript 解析url的search方法
2010/02/09 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
jQuery动态添加
2016/04/07 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
jquery之别踩白块游戏的简单实现
2016/07/25 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python 图片验证码代码分享
2012/07/04 Python
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
python中__call__方法示例分析
2014/10/11 Python
Python探索之修改Python搜索路径
2017/10/25 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
GC是什么?为什么要有GC?
2013/12/08 面试题
简单的辞职信范文
2014/01/18 职场文书
提拔干部考察材料
2014/05/26 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
限期整改通知书
2015/04/22 职场文书
人口与计划生育责任书
2015/05/09 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书