cari

Rumah  >  Soal Jawab  >  teks badan

java - 使用DispatcherServlet后MultipartFile接收不到文件

使用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

高洛峰高洛峰2803 hari yang lalu849

membalas semua(3)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-18 10:32:38

    Adakah anda pasti nama parameter "fail" adalah betul?
    Cuba ini, ini adalah cara saya menggunakannya tanpa masalah.

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

    ditambah bahagian hadapan

    <form action="/upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" multiple>
    <input type="submit" ">
    </form>

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 10:32:38

    var formData = new FormData();
    formData.append('file', $('#****')[0].files[0]);

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:32:38

    Saya baru sahaja menghadapi masalah ini hari ini, dan saya menyelesaikannya selepas penyelidikan.

    Ini kerana konfigurasi ServletRegistrationBean yang disuntik oleh anda sendiri berbeza daripada ServletRegistrationBean yang disuntik melalui but spring secara lalai. ServletRegistrationBean yang anda suntikan sendiri tidak dikonfigurasikan untuk mengendalikan permintaan muat naik secara lalai.

    Sila rujuk konfigurasi berikut:

        //自动注入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;
        }

    balas
    0
  • Batalbalas