我正在尝试上传文件(任何类型),但是我在服务器端(Spring控制器)或客户端(邮递员)上做错了。
控制器(尝试两种方法):
@RestController
@RequestMapping("/group")
public class GroupController {
@PostMapping(value = "/test1", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.MULTIPART_FORM_DATA_VALUE)
public String testUpload1(@RequestBody MultipartFile file) {
return null;
}
@RequestMapping(value = "/test2", method = RequestMethod.POST)
public String testUpload2(@RequestParam(name = "file", required = true) MultipartFile multipartFile) {
return null;
}
}
答案 0 :(得分:0)
您可以尝试以下代码。
@PostMapping(value = "/test1", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}, produces = MediaType.TEXT_PLAIN_VALUE)
public String testUpload1(@RequestParam("file") MultipartFile uploadedFile) {
System.out.println("Uploaded File Name = " + uploadedFile.getOriginalFilename());
File file = new File("E:/sure-delete/" + uploadedFile.getOriginalFilename());
//Upload functionality
try {
uploadedFile.transferTo(file);
} catch (IOException e) {
e.printStackTrace();
}
return ResponseEntity.ok("File uploaded successfully ...");
}
答案 1 :(得分:0)
问题与Spring没有MultipartResolver bean有关。您的邮递员设置看起来不错。
如果未定义bean,则会出现以下错误:
[o.s.w.m.s.MissingServletRequestPartException: Required request part 'file' is not present]
您需要做的是用XML定义CommonsMultipartResolver bean:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- e.g.: 1 MB max upload size -->
<property name="maxUploadSize" value="1048576"/>
</bean>
或者在Java中完成
@Bean
public MultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setMaxUploadSize(1048576);
return resolver;
}