使用ajax提交multipart / form-data时遇到问题。
HTML code:
<form id='form_foto' method='post' enctype='multipart/form-data'>
<input type='hidden' id='id_noticia' name='id_noticia' value='"+id_noticia+"' />
<input name='foto[]' type='file' multiple />
</form>
jQuery和Ajax:
$("#form_foto").submit(function(e){
$("#form_foto").append("<br />Aguarde...");
var formData = new FormData(this);
$.ajax({
url: "/PortalGBD/services",
type: "POST",
data: formData,
async: false,
dataType: "multipart/form-data",
processData: false,
contentType: false,
success: function(resposta){
alert(resposta);
}
});
e.preventDefault();
});
$("#form_foto").submit();
self.close();
}
请求文件输入为空:
----------------------------- 65942623427134 内容处理:表格数据;名称=&#34; id_noticia&#34;
336 ----------------------------- 65942623427134 内容处理:表格数据;命名=&#34;照片[]&#34 ;;文件名=&#34;&#34; Content-Type:application / octet-stream
----------------------------- 65942623427134 -
请帮我解决这个问题。谢谢。
答案 0 :(得分:0)
请将代码var formData = new FormData(this);
中的一行更改为var formData = new FormData($(this)[0]);
,然后进行检查。
当我们创建FormData的实例时,我们传递form [0]而不是form。它的意思是实际的表单元素,但不是jQuery选择器。