File upload Spring启动-错误:org.springframework.web.multipart.support.MissingServletRequestPartException,必需的请求部分';文件';不在场

File upload Spring启动-错误:org.springframework.web.multipart.support.MissingServletRequestPartException,必需的请求部分';文件';不在场,file-upload,spring-boot,multipart,File Upload,Spring Boot,Multipart,我在使用Spring boot上载文件时遇到此错误,我已在线尝试了解决方案,但似乎没有任何帮助,任何线索都无法解释为什么会发生这种情况: { "timestamp": "2017-05-10T18:15:21.812+0000", "status": 400, "error": "Bad Request", "exception": "org.springframework.web.multipart.support.MissingServletRequestPartExcept

我在使用Spring boot上载文件时遇到此错误,我已在线尝试了解决方案,但似乎没有任何帮助,任何线索都无法解释为什么会发生这种情况:

{
  "timestamp": "2017-05-10T18:15:21.812+0000",
  "status": 400,
  "error": "Bad Request",
  "exception": "org.springframework.web.multipart.support.MissingServletRequestPartException",
  "message": "Required request part 'file' is not present",
  "path": "/api/upload"
}

就在我这边遇到了这个问题,我正在寻找答案。我可以通过在类中添加扩展WebMVCConfigureAdapter的ByteArrayHttpMessageConverter来解决问题:

public class AppConfiguration extends WebMvcConfigurerAdapter {

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

    ByteArrayHttpMessageConverter byteArrayHttpMessageConverter = new ByteArrayHttpMessageConverter(); 
    byteArrayHttpMessageConverter.setSupportedMediaTypes(getSupportedMediaTypes());
    converters.add(byteArrayHttpMessageConverter);

    //add other converters here
}

private List<MediaType> getSupportedMediaTypes() {
    List<MediaType> list = new ArrayList<MediaType>();
    //Add whatever media types you want to support here.
    list.add(MediaType.MULTIPART_FORM_DATA);
    return list;
}
公共类AppConfiguration扩展了WebMVCConfigureAdapter{
@凌驾

public void configureMessageConverters(List在我这方面遇到了这个问题,正在搜索答案。我可以通过在类中添加一个扩展WebMVCConfigureAdapter的ByteArrayHttpMessageConverter来解决我的问题:

public class AppConfiguration extends WebMvcConfigurerAdapter {

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

    ByteArrayHttpMessageConverter byteArrayHttpMessageConverter = new ByteArrayHttpMessageConverter(); 
    byteArrayHttpMessageConverter.setSupportedMediaTypes(getSupportedMediaTypes());
    converters.add(byteArrayHttpMessageConverter);

    //add other converters here
}

private List<MediaType> getSupportedMediaTypes() {
    List<MediaType> list = new ArrayList<MediaType>();
    //Add whatever media types you want to support here.
    list.add(MediaType.MULTIPART_FORM_DATA);
    return list;
}
公共类AppConfiguration扩展了WebMVCConfigureAdapter{
@凌驾

public void configureMessageConverters(列表您的文件输入标记上有name属性吗?我正在使用angular 2,我这样做:put.append('file',fileToUpload);返回this.api.postFile('/upload',input)。订阅(res=>console.log(res.detailedResult),err=>console.log(err));您的文件输入标签上有name属性吗?我使用angular 2,我这样做了:put.append('file',fileToUpload);返回this.api.postFile('/upload',input).subscribe(res=>console.log(res.detailedResult),err=>console.log(err));