使用Yii中的ajax按钮附加文件

时间:2014-01-06 10:10:39

标签: php jquery ajax yii

我需要使用ajax按钮上传文件。当我在yii中使用具有相同控制器操作的简单CHTML按钮时,文件上传工作正常。但是使用ajax按钮我无法保存上传的文件。

这是我的表格:

    <?php echo CHtml::form('Mes', 'post', array('id' => 'frm', 'enctype' => 'multipart/form-data')); ?>
    <?php echo CHtml::textArea('Message', '', array('maxlength' => 500, 'id' => 'messagetextarea1', 'rows' => 6, 'cols' => 50)); ?>
<?php echo CHtml::fileField('attach', '', array('size' => 55, 'maxlength' => 55)); ?>
<?php
  // echo CHtml::button('save',array('submit'=>'/mailbox/message/save'));   -   simple button working fine

      echo CHtml::ajaxSubmitButton('Send', CHtml::normalizeUrl(array('/mailbox/message/save', 'render' => true)), array(
                                        'dataType' => 'json',
                                        'type' => 'post',

                                            ));
                                            ?>
<?php echo CHtml::endForm(); ?>

控制器:

if (isset($_POST['Message']))
    {
       $model = new Message;
        //echo $_POST['Message'];
        //echo $_POST['Text'];
         $model->attachments = CUploadedFile::getInstanceByName('attach', 'attachments');
        Yii::app()->user->setState('attachmnt',$model->attachments);
        $uploadfile = $model->attachments;
        if ($uploadfile->saveAs(dirname(Yii::app()->basePath) . '/images/' . $uploadfile))
        {
            echo "saved";
        }
        $model->save();
}

如何使用ajax保存附件?

1 个答案:

答案 0 :(得分:1)

据我所知Yii ajax按钮不支持文件上传,如果你想要ajax文件上传你可以使用“jquery file upload”http://www.yiiframework.com/extension/xupload