我已经拥有接受MultipartFile
@RequestMapping(value = "/uploadImage" )
@ResponseBody
public ResponseEntity<String> handleFileUpload(@Validated MultipartFileWrapper file,
BindingResult result, Principal principal)
出现了新的要求。我们需要从外部资源(例如Dropbox)加载文件并在本地mashine上重新保存。我知道加载的链接是先决条件。
我想重用第一个控制器。因此我的目标 - 使用类型为MultipartFile的外部链接下载文件并将其传递给现有控制器。
春天如何解决我的问题?
P.S。
MultipartFileWrapper
只是MultipartFile
答案 0 :(得分:0)
我添加了
<!-- Integration-->
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-http</artifactId>
<version>${spring.version}</version>
</dependency>
和以下代码(我减少了异常处理)
InputStream inputStream = new URL(url).openStream();
File file = File.createTempFile("tmp", ".txt", new File(System.getProperty("user.dir")));
byte[] binary = IOUtils.toByteArray(inputStream);
FileUtils.writeByteArrayToFile(file, binary);
UploadedMultipartFile multipartFile = new UploadedMultipartFile(file, file.length(), "jpg",
"formParameter", fileName);
MultipartFileWrapper multipartFileWrapper = new MultipartFileWrapper();
multipartFileWrapper.setMultipartFile(multipartFile);
redirectAttributes.addFlashAttribute(multipartFileWrapper);
return "redirect:/member/uploadImage";