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 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
PHP6 mysql连接方式说明
Feb 09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
Feb 10 PHP
深入PHP变量存储的详解
Jun 13 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 PHP
Smarty模板变量与调节器实例详解
Jul 20 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 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
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
SWFObject Flash js调用类
2008/07/08 Javascript
模仿jQuery each函数的链式调用
2009/07/22 Javascript
学习ExtJS Panel常用方法
2009/10/07 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python用插值法绘制平滑曲线
2021/02/19 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
体育教师求职信
2014/05/24 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
未婚证明范本
2015/06/15 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
HDFS免重启挂载新磁盘
2022/04/06 Servers