我正在尝试将图片文件上传到服务器,但$ _FILE始终为空,我不知道原因。
这是html:
public ModelAndView addTask(@ModelAttribute("task") Tasks tasks, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
//errors handling
}
}
这里是jquery脚本:
<form action='' id='ajax_form' method='post' enctype="multipart/form-data">
<input type='file' name='imagem'>
<input type='submit' id='btUploadImagem' value='Upload'>
</form>
控制器php:
function salvaImagem(){
var form = $(this).closest('form');
var formData = new FormData(form);
var dados = formData;
jQuery.ajax({
type: "POST",
url: "salvaImagem",
data: dados,
contentType: false,
processData: false,
dataType: "json"}).done(function(response)
{
if(response.sucesso){
//show success message
}
else{
//show error message
}
});
return false;
}
$('#btUploadImagem').on('click', salvaImagem);
我做错了什么,所以$ _FILE总是空的?
答案 0 :(得分:0)
我建议您使用插件进行管理上传。尝试使用Jquery Plupload
但如果您不想使用插件,请尝试print_r($ _ FILES,true)以查看是否存在任何信息
答案 1 :(得分:0)
你试过dados.append(name, value, filename);
吗?有关详细信息,请查看https://developer.mozilla.org/en-US/docs/Web/API/FormData/append。我自己不熟悉FormData Web API。
您也可以在此处找到答案:How to use FormData for ajax file upload