首页 > 解决方案 > 当前请求不是多部分请求 | 阿贾克斯 | 弹簧靴 | 多部分 | jQuery

问题描述

org.springframework.web.multipart.MultipartException:当前请求不是多部分请求

HTML 包含大约 50 或 60 个元素,包括单选、复选框、文本区域、文本框以及多种文件类型:

Upload File: <input id="partfiles" name="partfiles[]" type="file" class="file" multiple data-show-upload="true" data-show-caption="true">
                                
 SomeLabel: <form:input type="number" path="operationValue" class="form-control" placeholder="operationValue"></form:input>
                                    

jQuery:

dataType : 'text',
url : "/createpo",
enctype : 'multipart/form-data',
data : $("body form:first").serialize(),

春季启动代码:

@PostMapping("/createpo")
public String createPO(@ModelAttribute("purchaseOrderForm") PurchaseOrderForm purchaseOrderForm, BindingResult bindingResult, Model model, @RequestParam("partfiles") MultipartFile[] files) 
{
  System.out.println(purchaseOrderForm);
  System.out.println("Length:" + files.length);

purchaseOrderForm模型属性中没有多部分。

当我请求时,我得到以下内容类型:

Content-Type: application/x-www-form-urlencoded; charset=UTF-8

我尝试更改上面给出的编码类型,但没有效果。

标签: jqueryajaxspring-bootmultipartform-datamultipart

解决方案


使用以下固定:

    var fromData  = new FormData($("#body form:first")[0]);
    documentCommon.ajax({
        dataType : 'text',
        url : "/createpo",
        contentType : false,
        processData: false,
        data: fromData,

推荐阅读