使用Yii的ActiveForm上传文件

时间:2010-08-31 08:12:53

标签: file-upload yii

我正在尝试使用Yii的ActiveForm创建一个带有图片上传字段的基本注册页面。但是,我遇到了问题。我使用以下代码来创建表单标记:

$form=$this->beginWidget('CActiveForm', array(
                                'id'=>'activity_form', 
                                'enableAjaxValidation'=>true, 
                                'stateful'=>true, 
                                'enctype'=>'multipart/form-data'
                                ));

以上代码在Yii中生成以下错误消息:

属性“CActiveForm.enctype”未定义

我也试过了:

$form=$this->beginWidget('CActiveForm', array(
                                'id'=>'activity_form', 
                                'enableAjaxValidation'=>true, 
                                'stateful'=>true, 
                                array('enctype'=>'multipart/form-data')));

以及:

$form=$this->beginWidget('CActiveForm', array(
                                'id'=>'activity_form', 
                                'enableAjaxValidation'=>true, 
                                'stateful'=>true), 
                                array('enctype'=>'multipart/form-data')));

但这些都不起作用。

关于可能出错的任何想法?我可以使用beginWidget创建具有文件上载功能的多部分表单吗?我应该遵循的格式是什么?我似乎无法在文档或论坛中找到任何答案。

谢谢!

1 个答案:

答案 0 :(得分:17)

没关系。我找到了解决方案。诀窍是使用像这样的htmlOptions:

$this->beginWidget('CActiveForm', array(
  'id'=>'activity_form', 
  'enableAjaxValidation'=>true, 
  'stateful'=>true, 
  'htmlOptions'=>array('enctype' => 'multipart/form-data')
));