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 相关文章推荐
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php设计模式 State (状态模式)
Jun 26 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
php利用ZipArchive类操作文件的实例
Jan 21 PHP
php post换行的方法
Feb 03 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
Python 切分数组实例解析
2019/11/07 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
python手机号前7位归属地爬虫代码实例
2020/03/31 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
行政总监岗位职责
2013/12/05 职场文书
初中校园之声广播稿
2014/01/15 职场文书
农民致富事迹材料
2014/01/23 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
条幅标语大全
2014/06/20 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
担保书格式范文
2015/09/22 职场文书