我需要使用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保存附件?
答案 0 :(得分:1)
据我所知Yii ajax按钮不支持文件上传,如果你想要ajax文件上传你可以使用“jquery file upload”http://www.yiiframework.com/extension/xupload