• 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’,具体请看我的:

    <?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=”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.’,
    )
  • 相关阅读:
    MyBatis中传入参数parameterType类型详解
    mybatis逆向工程无法生成带有_表明的解决办法。
    sql server 正则匹配查询数据
    Kibana按时间(小时,分钟,天)统计数据 ,
    AutoCAD 多重引线 文本 左右对齐的问题
    ObjectARXWizard2022安装
    综合练习:词频统计
    powerDesigner设计表自动生成sql语句,设置携带注释
    打jar包后,无法获取resources目录下的word模板文件
    solr新建core,并配置schema
  • 原文地址:https://www.cnblogs.com/xieqian111/p/5795523.html
Copyright © 2020-2023  润新知