为了账号安全,请及时绑定邮箱和手机立即绑定

使用DispatcherServlet后MultipartFile接收不到文件

使用DispatcherServlet后MultipartFile接收不到文件

绝地无双 2019-02-20 06:43:32
使用DispatcherServlet @Configuration public class WebConfig { @Bean public ServletRegistrationBean apiV1ServletBean(WebApplicationContext wac) { DispatcherServlet ds = new DispatcherServlet(wac); ServletRegistrationBean bean = new ServletRegistrationBean(ds, "/*"); bean.setName("xxx"); bean.addUrlMappings("/xxx/*"); return bean; } } MultipartFile接收不到文件 @RequestMapping(method = RequestMethod.POST) public Response<String> site(@RequestParam("file") MultipartFile file, String userId, HttpServletRequest request) { } 错误报告:Required request part 'file' is not present
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

我今天刚好遇到这个问题,研究解决了。

这个因为你自己注入的ServletRegistrationBean跟spring boot默认注入的ServletRegistrationBean的配置不一样。你自己注入的ServletRegistrationBean默认没有配置处理上传请求的。

请参考以下配置:

    //自动注入spring boot默认的上传配置
    @Autowired
    private MultipartConfigElement multipartConfigElement;
    @Bean
    public ServletRegistrationBean apiV1ServletBean(WebApplicationContext wac) {
        DispatcherServlet servlet = new DispatcherServlet(wac);
        ServletRegistrationBean bean = new ServletRegistrationBean(servlet, "/api/*");
        //注入上传配置到自己注册的ServletRegistrationBean
        bean.setMultipartConfig(multipartConfigElement);
        bean.setName("ApiServlet");
        return bean;
    }
查看完整回答
1 反对 回复 2019-03-01
?
忽然笑

TA贡献1806条经验 获得超5个赞

确定参数名称"file"对吗?
试下这样,我是这样用的没问题。

List<String> imgUrls=new ArrayList<>();
MultipartHttpServletRequest multipartRequest =(MultipartHttpServletRequest) request;
List<MultipartFile> files=multipartRequest.getFiles("file");

再加上前端的

<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" multiple>
<input type="submit" ">
</form>
查看完整回答
反对 回复 2019-03-01
?
当年话下

TA贡献1890条经验 获得超9个赞

var formData = new FormData();
formData.append('file', $('#****')[0].files[0]);
查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 1185 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号