2021-01-19

调用上传文件接口报错“the request was rejected because no multipart boundary was found”

设置的headers信息

       content-type="multipart/form-data"(此处test环境和产线环境均已设置,应用市场app也同上,唯独应用市场的app上传失败)

发起请求后服务器端报错

找了各个帖子发现存在两种情况

情况1:重新修改headers参数 ,干掉content-type, 因为上传图片request请求会自动添加这个请求参数的格式和boundary标识,如果自定义可能会覆盖request请求标识,从而产生冲突

情况2:前面有一段错误是 “org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; ” 

             从上面的异常信息来看,是因为该目录[/tmp/tomcat.1428942566812653608.8090/work/Tomcat/localhost/ROOT],不存在导致的,也就是说上传图片post请求需要这个临时目录来存储post数据,因为该目录是挂在/temp目录下的临时文件,那么对于一些OS系统,像centOS将经常删除这个临时目录,所有导致该目录不存在了

            情况2解决方法:1)重启项目

                                        2)在application.yml文件中设置multipart location ,并重启项目

                                              

spring:
  http:
    multipart:
      location: /data/upload_tmp

                                          3)添加启动参数 -java.tmp.dir=/path/to/application/temp/,并重启

采用重启项目已解决,因为涉及生产环境,后面版本在考虑使用第二种方式

 

以上两种情况均已尝试,最终解决办法为第一种,去掉content-type

 

解决办法:

尝试不在headers里面加content-type ,直接去掉了headers以后,调用接口正常

本文参考如下两个帖子得出结论:

https://blog.csdn.net/sun_977759/article/details/88868509

https://blog.csdn.net/weixin_30569001/article/details/98404711

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值