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.’,
    )
  • 相关阅读:
    hiho_1081_最短路径1
    hiho_1079_离散化
    hiho_1078_线段树区间修改
    hiho_1069_最近公共祖先3
    【.netcore学习】.netcore添加到 supervisor 守护进程自启动报错
    【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境
    【.NetCore学习】ASP.NET Core EF Core2.0 DB First现有数据库自动生成实体Context
    【vue基础学习】vue.js开发环境搭建
    【vue学习】vue中怎么引用laydate.js日期插件
    【年终总结】个人的2017年年终总结
  • 原文地址:https://www.cnblogs.com/jthb/p/3217321.html
Copyright © 2011-2022 走看看