我正在检索我的表单数据并使用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;
}
}
任何线索为什么文件为空?也许我错误地访问它,如果是这样,你能告诉我正确的方法。
答案 0 :(得分:0)
您无法使用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你可以做到这一点。查看this帖子