zoukankan      html  css  js  c++  java
  • yii上传图片、yii上传文件、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’

    1 <?php $form=$this->beginWidget(‘CActiveForm’, array(
    2 ‘id’=>’books-form’,
    3 ‘enableAjaxValidation’=>false,
    4 ‘htmlOptions’=>array(‘enctype’=>’multipart/form-data’),
    5 )); ?>

    (2) 接着,在view下的form里设置:

    1 <div class=”row”>
    2 <?php echo $form->labelEx($model,’BookImg’); ?>
    3 <?php echo CHtml::activeFileField($model,’BookImg’); ?>
    4 <?php echo $form->error($model,’BookImg’); ?>
    5 </div>

    (3) 如果你想预览图片,那么请注意了,可以加上这么一段:

    <div class=”row”>
    <?php echo ‘图片预览’ ?>
    <?php echo ‘<img src=”http://www.yerlife.cn/’.$model->BookImg.’” style=”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.’,
    )
  • 相关阅读:
    python学习 day6 (3月7日)
    day05作业---字典
    day04 列表
    python学习 day5 (3月6日)
    python学习 day4 (3月5日)---列表
    Head First JavaScript 第九章:9 异步编码——处理事件
    Head First JavaScript 第八章:8 编写一个应用程序
    Head First JavaScript 第七章:7 类型、相等、转换等系统地讨论类型
    《深入理解C指针》第五章 指针和字符串
    Architecture of a Database System论文——第四章:关系查询处理器
  • 原文地址:https://www.cnblogs.com/jthb/p/3217321.html
Copyright © 2011-2022 走看看