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
php获取url字符串截取路径的文件名和扩展名的函数
Jan 22 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
浅谈PHP中关于foreach使用引用变量的坑
Nov 14 PHP
使用vs code编辑调试php配置的方法
Jan 29 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
PHP实现抽奖功能实例代码
Jun 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
JavaScript的类型简单说明
2010/09/03 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
2020/03/10 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
跟老齐学Python之数据类型总结
2014/09/24 Python
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
python操作CouchDB的方法
2014/10/08 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
django 修改server端口号的方法
2018/05/14 Python
Python日期时间Time模块实例详解
2019/04/15 Python
Python求凸包及多边形面积教程
2020/04/12 Python
Django之腾讯云短信的实现
2020/06/12 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
电子商务自荐书范文
2014/01/04 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
毕业实习单位意见
2015/06/04 职场文书
工作简报怎么写
2015/07/21 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
「女孩的钓鱼慢活」全新版权绘公布
2022/03/21 日漫