咔咔咔 2013-10-12 17:14:18 4711次浏览 4条评论 4 1 0

这种是简单的图片上传只适合于jpg,gif,png适合新手练习。

方法一:

//在控制器里修改:VisaController.php

注释:vsa_img 是字段名称

public function actionCreate() {
    $model = new Visa;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

    if (isset($_POST['Visa'])) {
        $model->attributes = $_POST['Visa'];
        $image = CUploadedFile::getInstance($model, 'image');
        if (is_object($image) && get_class($image) === 'CUploadedFile') {
            $model->vsa_img = time() . '_' . rand(0, 9999) . '.jpg';
        } else {
            $model->vsa_img = 'NoPic.jpg';
        }
        if ($model->save()) {
            if (is_object($image) && get_class($image) === 'CUploadedFile') {
                $image->saveAs('images/product/' . $model->vsa_img);
            }
            $this->redirect(array('view', 'id' => $model->visa_id));
        }
    }

    $this->render('create', array(
        'model' => $model,
    ));
}

//在视图里修改:_form.php

<?php
$form = $this->beginWidget('CActiveForm', array(
    'id' => 'visa-form',
    'enableAjaxValidation' => false,
    'htmlOptions' => array('enctype' => 'multipart/form-data')
));
?>
<div class="row">
    <?php echo $form->labelEx($model,'vsa_img'); ?>
            <?php echo CHtml::activeFileField($model,'image'); ?>
    <?php echo $form->error($model,'vsa_img'); ?>
</div>

//在模型层里修改:Visa.php

添加变量:

public $image;

在rules()函数:

allowEmpty'=>true //的意思是可以为空

array('image', 'file', 'types'=>'jpg,gif,png', 'allowEmpty'=>true ),

刘东东整理 高手勿喷

觉得很赞
  • 评论于 2013-11-12 14:37 举报
    <pre> 
    $this->beginWidget('CActiveForm', array(
        'id' => 'visa-form',
        'enableAjaxValidation' => false,
        'htmlOptions' => array('enctype' => 'multipart/form-data')
    ));
    </pre>
    

    弱弱文学,里面的id是什么意思?

  • 评论于 2013-11-12 15:52 举报

    id 是 <form id='visa-form' , enctype= 'multipart/form-data'> </form>

    好了,我想知道
    htmlOptions => ('enctype' => 'multipart/form-data' 和 '_target'=>'Right')

    为什么设置不成功呢?

  • 评论于 2013-11-12 15:53 举报

    id 是 form的id吧
    <form id='visa-form' , enctype='....' , target='....'> </form>
    好了,我想知道
    htmlOptions =>('enctype' => 'multipart/form-data' 和 '_target'=>'Right')

    为什么设置不成功呢?

  • 评论于 2015-04-23 16:11 举报

    近期要用到,多谢分享。

您需要登录后才可以评论。登录 | 立即注册