postman中springboot上传文件Missing initial multi part boundary

       如果在postman中设置了Context-type为multipart/form-data以及file设置,如下图:

而我的调用的上传方法仅仅只是用了@RequestMapping("/xxxx"),并且使用MutipartFile,如下图:

 

的时候,可能遇到的错误信息如下(报错信息看加粗与下划线部分就行了)

org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: Missing initial multi part boundary
    at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:124)
    at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:115)
    at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:88)

Caused by: java.io.IOException: Missing initial multi part boundary
    at org.eclipse.jetty.util.MultiPartInputStreamParser.parse(MultiPartInputStreamParser.java:613)
    at org.eclipse.jetty.util.MultiPartInputStreamParser.getParts(MultiPartInputStreamParser.java:482)
    at org.eclipse.jetty.server.MultiParts$MultiPartsUtilParser.getParts(MultiParts.java:112)
    at org.eclipse.jetty.server.Request.getParts(Request.java:2382)
    at org.eclipse.jetty.server.Request.extractContentParameters(Request.java:529)
    at org.eclipse.jetty.server.Request.getParameters(Request.java:430)
    at org.eclipse.jetty.server.Request.getParameterMap(Request.java:1068)
    at javax.servlet.ServletRequestWrapper.getParameterMap(ServletRequestWrapper.java:203)
    at javax.servlet.ServletRequestWrapper.getParameterMap(ServletRequestWrapper.java:203)
    at javax.servlet.ServletRequestWrapper.getParameterMap(ServletRequestWrapper.java:203)
    at javax.servlet.ServletRequestWrapper.getParameterMap(ServletRequestWrapper.java:203)
    at com.hsjry.channel.guard.biz.oauth2.filter.ParameterHttpServletRequest.getParameterMap(ParameterHttpServletRequest.java:47)

其实,从上面的错误信息们就可以看到,大概就是是说multipart少了对参数boundary的初始化,其实就是boundary这个参数没有给值。解决的方式其实很简单,只需要将Context-type的设置的值后边加上分号,再加上boundary=ebf9f03029db4c2799ae16b5428b06bd1,完整的就是multipart/form-data;boundary=ebf9f03029db4c2799ae16b5428b06bd1,boundary里的值你可以随便改,

或者设置成:

然后,这样你就可以成功上传文件了,当然postman中也可以下载文件,只需要点击"Send“右下角的小三角形,选择一下就可以了:

       当然,有的人说啥post们中不需要指定Content-Type的值,说啥上传文件的时候会自动识别,反正我试过了,并不可行。这里如果不设置Content-Type的话,后台会报Current request is not a multipart request的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值