繁体   English   中英

java:ajax表单数据提交时文件不可用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM