Spring-boot-error: org.springframework.web.multipart.support.MissingServletRequestPartException, требуемая часть запроса «файл» отсутствует

Я получил эту ошибку при загрузке файла с загрузкой Spring, я пробовал решения в Интернете, но, похоже, ни одно из них не помогает, есть какие-либо подсказки, почему это происходит:

{
  "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"
}

person kenadet    schedule 10.05.2017    source источник
comment
У вас есть атрибут имени в теге ввода файла?   -  person syncdk    schedule 10.05.2017
comment
Я использую angular 2, я сделал это: put.append('file', fileToUpload); return this.api.postFile('/upload', input).subscribe( res =› console.log(res.detailedResult), err =› console.log(err) );   -  person kenadet    schedule 10.05.2017


Ответы (1)


Просто столкнулся с этим на моем конце и искал ответ. Я смог решить свою проблему, добавив в свой класс ByteArrayHttpMessageConverter, который расширяет WebMvcConfigurerAdapter:

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;
}

}

person mag382    schedule 24.07.2017