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.yerlife.cn/’.$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上传图片、yii上传文件、yii控件activeFileField使用的更多相关文章

  1. 教你如何调用百度编辑器ueditor的上传图片、上传文件等模块

    出于兴趣爱好,前段时间自己尝试写了一个叫simple的cms,里面使用了百度ueditor编辑器,发现它的多图片上传模块很不错,用起来很方便,又可以选择已经上传好的图片.正好我又是个懒人,发现有现成的 ...

  2. 文件上传(FileUpload控件)

    asp.net 文件上传,大文件上传.   新建一个asp.net页面,在工具栏里拖入 FileUpload 上传控件.一个按钮 Button  !    !     ! 进入Button事件 //- ...

  3. DTCMS中部分IE8不支持webupload上传附件的控件,更改为ajaxfileupload

    dialog\dialog_attach.aspx <!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  4. AutoIt上传非input控件方式的文件脚本

    AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动 ...

  5. UEditor调用上传图片、上传文件等模块

    来源:https://www.cnblogs.com/lhm166/articles/6079973.html 说到百度富文本编辑器ueditor(下面简称ue),我不得不给它一个大大的赞.我们在网站 ...

  6. yii使用CUploadedFile上传文件

    一.前端代码 Html代码   <form action="<?php echo $this->createUrl('/upload/default/upload/');? ...

  7. YII 1.0 上传文件

    $upload = CUploadedFile::getInstance($articleModel,'thumb'); if($upload){ $name = date("Ymd&quo ...

  8. html5异步上传图片显示上传文件进度条

    <html> <head> </head> <body> <p> emo_album_id:<input type="tex ...

  9. Extjs 使用fileupload插件上传文件 带进度条显示

    一.首先我们看看官方给出的插件的解释: 一个文件上传表单项具有自定义的样式,并且可以控制按钮的文本和 像文本表单的空文本类似的其他特性. 它使用一个隐藏的文件输入元素,并在用户选择文件后 在form提 ...

  10. js 上传文件后缀名的判断 var flag=false;应用

    js 上传文件后缀名的判断  var flag=false;应用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

随机推荐

  1. 关于我的Android 博客

    我是曹新雨,我为自己代言.现在的菜鸟,3年以后我就是大神.为自己加油.微信:aycaoxinyu 关于我的Android博客,都是我当初遇到困难,克服之后,写上去的.后来,有人加我微信,问我一些问题, ...

  2. idea无法新建maven项目

    之前用的都是eclipse,自从4月底入职新公司后,接触到了idea. 然后自己的电脑上也安装了idea,不过一直都没用,直到昨天打算开起来使用一下. 之后就是想新建一个maven项目,发现死活也新建 ...

  3. 运行SparkStreaming程序时出现 Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowA异常

    Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowA 这个问题是版本不统一导致的 ...

  4. 利用split方法计算字符串中出现字母最多的次数

    最近练习一些简单的算法题,知道自己很不聪明,但却没想到用了这么久,划算不划算是个需要考虑的问题, 其中有个算法是:统计一个字符串出现最多的字母,网上很多自己的见解,但是才疏学浅,有些地方看的有点困难, ...

  5. web.py上传文件并解压

    有个需求是从php端上传zip文件到python端并且解压到指定目录,以下是解决方法 1.python端,使用的web.py def POST(self): post_data = web.input ...

  6. 从事IT业一个8年老兵转行前的自我总结1——初爻

    现在,本人已离开这个呆了8年的软件行业了.回想自己从半路出家,从实施开始做起,最终在一家外企做项目经理PM结束了自己的软件职业生涯.从一张白纸的自学开始,做过项目实施,客户培训,拿过需求,开发,架构设 ...

  7. 《Cracking the Coding Interview》——第7章:数学和概率论——题目3

    2014-03-20 02:05 题目:给定笛卡尔二维平面上两条直线,判断它们是否相交. 解法:相交.重合.平行. 代码: // 7.3 Given two lines on the Cartesia ...

  8. Synology DS213J 群晖NAS git server架设方法!

    最近单位购入一台Synology  DS213J用作数据存储. 本人打算将一些项目的源代码也放在上面,他本身的套件中心提供了SVN SERVER和GIT SERVER. 设置SVN SERVER非常简 ...

  9. Python 字符串格式化输出方式

    字符串格式化有两种方式:百分号方式.format方式. 其中,百分号方式比较老,而format方式是比较先进的,企图替代古老的方式,目前两者共存. 1.百分号方式 格式:%[(name)][flags ...

  10. day06_04 购物车讲解02

    1.0 补充知识 a,b = [2,3] print(a) print(b) #>>>2 #>>>3 a,b = (2,3) print(a) print(b) # ...