问题是当我使用 ajax 调用此操作时,我无法在控制器/操作中获取 CMultifileUpload 实例
这是我认为的代码
<?php $form=$this->beginWidget('CActiveForm', array('id' => 'form',
'enableAjaxValidation' => false, 'htmlOptions' => array('enctype' => 'multipart/form-data'),)); ?>
<div class="row">
<?php
$this -> widget('CMultiFileUpload', array('name' => 'wupload', 'accept' => 'zip', \
'duplicate' => 'Duplicate file!', // useful, i think
'denied' => 'Invalid file type', // useful, i think
'max' => 1
));
echo CHtml::button('upload', array('onclick'=>'send()',));
?>
</div>
<?php $this->endWidget(); ?>
这是我在控制器中的操作
public function actionUpload(){
$file = CUploadedFile::getInstancesByName('wupload');
var_dump($file);
}
这是我的脚本功能
function send() {
var data = $("#form").serialize();
$.ajax({
type : 'POST',
url : 'upload',
data : data,
success : function(data) {
alert(data);
},
error : function(data) {// if error occured
alert("Error occured.please try again " + data);
},
dataType : 'html'
});
}
现在警报显示后我收到的所有内容都是这个
array(0){
}
我看不到我选择的文件,不像我使用普通的提交按钮,每件事都正常工作,我需要有人告诉我我在这里做错了什么?