Bleser
@Bleser

Загрузка файла через Spring?

У меня есть dev серевер на котором крутится angular 2 по адрусу localhost:4200, и tomcat со Spring на localhost:8080.
Пробую загрузить файл на сервер следующим способом:
Код angular:
uploadAvatar(file:File){
        let xhr = new XMLHttpRequest()
        xhr.open("POST",`http://localhost:8080/api/upload/avatar`)
        xhr.setRequestHeader("Content-Type","multipart/form-data")
        xhr.send(file)
    }


Код контроллера Spring:
@RequestMapping(value = "/api/upload/avatar", method = RequestMethod.POST)
    public String uploadFile(MultipartFile file){
        log.info(file);
        return file.getName();
    }


Но после попытки загрузить файл в java-консоли появляется ошибка:
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; 
nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found


Как исправить эту ошибку?
  • Вопрос задан
  • 2279 просмотров
Решения вопроса 1
Bleser
@Bleser Автор вопроса
Добавил два бина и все заработало.
@Bean(name = "commonsMultipartResolver")
public MultipartResolver multipartResolver() {
    return new StandardServletMultipartResolver();
}


@Bean
public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();

    factory.setMaxFileSize("10MB");
    factory.setMaxRequestSize("10MB");

    return factory.createMultipartConfig();
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Включить multipart support
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы