【问题标题】:no multipart boundary was found未找到多部分边界
【发布时间】:2019-03-01 08:13:16
【问题描述】:

使用 Rest Client Chrome 工具,我在我的请求中上传了一个 JSON 文件,例如 sample.json。低于异常。 尝试将标头作为 multipart/form-data 传递,也没有传递后者。但结果是一样的。我做得对吗?

the request 
was rejected because no multipart boundary was found

..

public HttpEntity<?> uploadJsonFile(@PathVariable("jsonFileID") String
    jsonFileID, @RequestParam("file") MultipartFile file) throws Exception 
    {
        // Some code here
    }

..

Failed to parse multipart 
servlet request; nested exception is java.io.IOException: 
org.apache.tomcat.util.http.fileupload.FileUploadException: the request 
was rejected because no multipart boundary was found] with root cause

org.apache.tomcat.util.http.fileupload.FileUploadException: the request 
was rejected because no multipart boundary was found
at org.apache.tomcat.util.http.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:831) ~[tomcat-embed-core-8.5.32.jar:8.5.32]
at org.apache.tomcat.util.http.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:256) ~[tomcat-embed-core-8.5.32.jar:8.5.32]
at org.apache.tomcat.util.http.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:280) ~[tomcat-embed-core-8.5.32.jar:8.5.32]
at org.apache.catalina.connector.Request.parseParts(Request.java:2884) ~[tomcat-embed-core-8.5.32.jar:8.5.32]
at org.apache.catalina.connector.Request.parseParameters(Request.java:3232) ~[tomcat-embed-core-8.5.32.jar:8.5.32]

【问题讨论】:

    标签: spring spring-boot httprequest


    【解决方案1】:

    为了你的眼睛,在java中你可能会使用:

    String boundary = Long.toHexString(System.currentTimeMillis());
                request.getHeaders().setContentType("multipart/form-data; boundary="+boundary);
    

    【讨论】:

      【解决方案2】:

      您似乎没有在 HTTP 请求标头中指定边界 - 请参阅此处了解我的意思 Unable to send a multipart/mixed request to spring MVC based REST service

      Content-Type: multipart/mixed;boundary=YourBoundaryOfChoiceHere
      

      【讨论】:

      • 边界是什么意思?
      • Content-Type: multipart 基本上就是这样 - 一条消息被分成多个部分并按原样发送。边界是这些部分之间的分隔符。如果您的边界是“abc”,则分隔符将是 HTTP 标准中定义的“--abc--”
      【解决方案3】:

      从标题中删除 'Content-Type': 'multipart/form-data'

      为我工作

      【讨论】:

        猜你喜欢
        • 2013-10-08
        • 2020-04-03
        • 1970-01-01
        • 2021-08-22
        • 1970-01-01
        • 2018-09-09
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多