[英]java: file not available on ajax form data submit
我正在检索表单数据,并使用Ajax将其提交到服务器。 该文件不可用。 其他字段数据可用。
$('#apply-form').submit(function(e){
var formData = new FormData($(this)[0]);
$.ajax({
url: '/public/listener?CO=ATV',
type: 'POST',
dataType: 'json',
data: formData,
success: function (data) {
console.log(data);
},
cache: false,
contentType: false,
processData: false
});
return false;
});
这就是我在服务器端访问请求的方式
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<Object> list = upload.parseRequest(this.request);
if(list != null){
for(Object fileItem : list){
FileItem item = (FileItem)fileItem;
if(! (item.isFormField()) )
this.item =item;
}
}
任何线索为什么文件为空? 也许我访问错误,如果可以,可以告诉我正确的方法。
您无法使用jquery发布文件。 此外,我认为您没有理由这样做。 只需将客户端更改为:
<form id="apply-form" action="/public/listener?CO=ATV" method="post" enctype="multipart/form-data">
your form
</form>
并发布您的表格:
$( "#other" ).click(function() {
$('#apply-form').submit(function( event ) {
console.log(event);
});
});
注意:如果不阻止默认事件,则浏览器将发布表单。
编辑实际上,使用html5可以做到这一点。 检查这篇文章
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.