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
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
php实现的表单验证类完整示例
Aug 13 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
php常用的url处理函数总结
2014/11/19 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
js动态切换图片的方法
2015/01/20 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
详解Vue文档中几个易忽视部分的剖析
2018/03/24 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python中splitlines()方法的使用简介
2015/05/20 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
python list排序的两种方法及实例讲解
2017/03/20 Python
Python装饰器用法示例小结
2018/02/11 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
聊聊python中的循环遍历
2020/09/07 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
后勤主管工作职责
2013/12/07 职场文书
推广普通话演讲稿
2014/05/23 职场文书
工厂标语大全
2014/10/06 职场文书
事业单位个人总结
2015/02/12 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android