Spring Boot实现文件上传的一些心得

2017-08-01  本文已影响0人  小博007

最近,写了关于spring boot实现文件上传的接口,本来感觉挺简单的,但是每次调用接口的时候都会给报异常:org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present.这就令我很费解,于是在Stack Overflow找相关的帖子,基本上都是说在pom.xml文件中需要引入spring-boot-starter-web相关依赖,就会自动包含了文件上传的依赖。

文件上传的controller层代码如下:

用apizza去调用接口的时候就会报错:

这就令我很费解,最后再细细地看了一遍代码发现原来写了一个AppConfig类,在类上面注解了@Configuration,又重新自定义了dispatcherServletRegistration这个方法:

导致自己注入的ServletRegistrationBean跟spring boot默认注入的ServletRegistrationBean的配置不一样。自己注入的ServletRegistrationBean默认没有配置处理上传请求的。

所以需要再自己注入的类中加上:

@AutoWired

private MultipartConfigElement multipartConfigElement;

并且在对应的dispatcherServletRegistration方法中设置文件上传

注入上传配置到自己注册的ServletRegistrationBean

registration.setMultipartConfig(multipartConfigElement);

最后再测试就会成功!

上一篇下一篇

猜你喜欢

热点阅读