我想創建一個異步文件上傳,但我打牆。下面是我在一個元素:CakePHP jQuery異步上傳
元素:
<div style="border:0px solid darkgray; width:100%; text-align: right; text-decoration: underline; font-weight: bold;">
<form id="upload_form" enctype="multipart/form-data">
<input type="file" accept="" id = "templatePath" name = "templatePath" name="MAX_FILE_SIZE" value="104857600">
<input type="submit" value="Submit" id = "bntSubmit" name = "bntSubmit" onclick="submitFileUpload();" >
</form>
</div>
JQuery的:
function submitFileUpload(){
try{
var FileUrl = "/staff/passport/upload_file/";
var request_timeout = 50000;
var formData = new FormData();
var files =$('#templatePath')[0].files[0];
formData.append('templatePath', files);
$.ajax({
url: FileUrl,
type: 'POST',
timeout: request_timeout,
cache: false,
contentType: false,
processData: false,
data:formData,
beforeSend: function(xhr){
},
success: function(data) {
try{
if(data.status =='ok'){
}else{
}
}catch(ex){
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
});
return false;
}catch(ex){
}
}
控制器功能:
public function upload_file(){
try{
$this->autoRender = false;
} catch (Exception $e){
return $this->EncodeError($e);
}
}
jquery似乎很好。擊中斷點,我可以看到對象「文件」已創建並具有文件屬性。控制器函數也被調用,但表單數據不會顯示在我的調試器中(「this」或_FILES []或任何其他變量中都沒有)。任何人都可以幫忙嗎?
感謝 傑森
您的元素是否在現有表單中調用,即是否有任何機會嵌套表單? – jimmymadon
是的。我試圖創建一個可重用的元素,因此它可以(並且)處於嵌套形式。 – jason