我在 YII 中建立了一个表单,我需要处理一个上传的文件。我遵循了这个指南,但我偶然发现了一个问题。CUploadedFile::getInstance
总是返回 null。
这是我使用的。我的模型:
class AdditionalFieldFile extends CFormModel {
public $uploadedFile;
/**
* @return array validation rules for model attributes.
*/
public function rules() {
return array(
//note you wont need a safe rule here
array('uploadedFile', 'file', 'allowEmpty' => true, 'types' => 'zip,doc,xls,ppt,jpg,gif,png,txt,docx,pptx,xlsx,pdf,csv,bmp'),
);
}
}
并在表单提交时处理控制器中上传的文件:
$model = new AdditionalFieldFile();
$model->uploadedFile = CUploadedFile::getInstance($model, 'field_'.$type_field.'['.$id_common.']');
之后$model->uploadedFile
由于某种原因为空。
请注意,$type_field
动态$id_common
来。
此外,表格有'enctype'=>'multipart/form-data'
所以这不是原因。