表单提交multipart/form-data,获取非文件参数的问题

接收multipart/form-data类型的参数,post请求,我在后台接收到是这样的

图片说明

普通的getParameter()方法获取的是null,这个该怎么处理呢?求大佬赐教

2个回答

    DiskFileItemFactory factoy=new DiskFileItemFactory();
    ServletFileUpload sfu=new ServletFileUpload(factoy);
    //解析request
    try {
        List<FileItem> list=sfu.parseRequest(request);
        for (FileItem fileItem : list) {
            fileItem.getFieldName();
            //判断是表单元素还是文件元素
            fileItem.isFormField();
            System.out.println(fileItem.getString());
        }

    } catch (FileUploadException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

你的input框 的name 对应上实体类的字段,然后用FormData对象组装数据传到后台,用实体类获取就可以了啊

//假如有个实体类 TestVo
public class TestVo{
    private String data;
    private String password;
    //get set
}

<form id="addForm" class="form-horizontal" method="post" enctype="multipart/form-data">
    <input type="text" class="form-control" name="data" >
    <input type="text" class="form-control" name="password" >
</form>

//js
var formFile = new FormData();
$("#addForm :input").each(function(){
    formFile.append(this.name, this.value);
});

$.ajax({
    url:'xx/xx/insert', 
    data: formFile,
    type: "POST",
    dataType: "json",
    success: function (json) {

    }
})

    //Controller
    @PostMapping(value = "insert", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public String insertData(HttpServletRequest request,TestVo entity,MultipartFile file){
        return "success";
    }
weixin_40165317
light_catcher 是接口传递的数据,而且对面接口的传递方式还不能改...
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐