我有一个开发服务器在 localhost:4200 运行 angular 2,在 localhost:8080 运行 spring tomcat。
我正在尝试通过以下方式将文件上传到服务器:
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)
}
弹簧控制器代码:
@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
如何修复此错误?
谢谢你。
我找到了解决问题的方法,下面我将尝试详细描述我为此所做的工作。
我使用 Angular 2 作为视图,文件按以下方式发送。
Content-Type
boundary
在这种情况下会自动注册 。在服务器端,您需要执行以下操作:
添加两个豆子:
控制器看起来像这样: