Spring5.0.7: MVC,Data,Security。我配置multipartResolver。
我发送下一个Ajax请求:
$.ajax({
type: 'POST',
cache: false,
processData: false,
contentType: false,
url: '/api/v1/category/add',
data: new FormData(form)
}).done(result=>{console.log(result);}).fail(result=>{
console.error('ERROR:', result.responseJSON.httpStatus, result.responseJSON.message, result);
self.toast.error('API Error.');
});但是有一个错误:Content type 'multipart/form-data;boundary=----WebKitFormBoundary6xBCDjCtYYuUVR5c' not supported
为什么?我不明白为什么会发生错误。
主计长:
@RestController
@Secured("hasRole('ADMIN')")
@RequestMapping(value = "/api/v1")
public class ApiController {
private static final Logger LOGGER = LogManager.getLogger(ApiController.class);
@PostMapping(value = "/category/add", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
private Response categoryAdd(Response response, @RequestBody CategoryAddForm categoryAddForm) {
LOGGER.info(categoryAddForm.toString());
return response;
}
}CategoryAddForm:
public class CategoryAddForm {
private String name;
private String description;
private MultipartFile preview;
public CategoryAddForm() { }
public CategoryAddForm(String name, String description, MultipartFile preview) {
this.name = name;
this.description = description;
this.preview = preview;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public MultipartFile getPreview() {
return preview;
}
}我不知道还能写些什么,但需要更多的文字。(
发布于 2018-09-02 00:17:29
在控制器中,使用@RequestParam而不是@RequestBody。
同样的问题对我来说很有效。有关更多信息,请参见此SO answer
发布于 2018-07-14 16:22:36
您需要添加这个maven依赖项commons-fileupload:commons-fileupload:1.3.x并声明MultipartResolver bean。
@Bean(name = "multipartResolver")
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(100000);
return multipartResolver;
}以上方法是针对Spring控制器的。如果您想为异步Spring控制器做些什么,请参考本文。http://www.baeldung.com/spring-file-upload
希望能帮上忙!
https://stackoverflow.com/questions/51337489
复制相似问题