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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP+javascript液晶时钟
Oct 09 PHP
php生成缩略图的类代码
Oct 02 PHP
php PDO中文乱码解决办法
Jul 20 PHP
php简单浏览目录内容的实现代码
Jun 07 PHP
PHP输出缓存ob系列函数详解
Mar 11 PHP
PHP同时连接多个mysql数据库示例代码
Mar 17 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
PHP多进程编程实例
Oct 15 PHP
zend framework重定向方法小结
May 28 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 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 isset()与empty()的使用区别详解
2010/08/29 PHP
php中的strpos使用示例
2014/02/27 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
jQuery的实现原理的模拟代码 -1 核心部分
2010/08/01 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
移动节点的jquery代码
2014/01/13 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
jquery图形密码实现方法
2015/03/11 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
原生js实现分页效果
2020/09/23 Javascript
Python不规范的日期字符串处理类
2014/06/10 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
装潢设计专业推荐信模板
2013/11/26 职场文书
结婚典礼证婚词
2014/01/08 职场文书
公司总经理任命书
2014/06/05 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
《圆的面积》教学反思
2016/02/19 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python