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 自定义错误处理函数的使用详解
May 10 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
Yii获取当前url和域名的方法
Jun 08 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
浅谈PHP链表数据结构(单链表)
Jun 08 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
PHP实现百度人脸识别
May 06 PHP
Yii框架函数简单用法分析
Sep 09 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 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遍历数组的方法汇总
2015/04/30 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
JS与框架页的操作代码
2010/01/17 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
JS 仿腾讯发表微博的效果代码
2013/12/25 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
详解Nodejs基于mongoose模块的增删改查的操作
2016/12/21 NodeJs
vue-axios使用详解
2017/05/10 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
Python求解平方根的方法
2015/03/11 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
python实现大文本文件分割
2019/07/22 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
物流专业大学应届生求职信
2013/11/03 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
2014财务年终工作总结
2014/12/08 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python