如何从外部链接上传MultipartFile?

时间:2015-08-22 21:08:01

标签: java spring-mvc file-upload multipartform-data multipart

我已经拥有接受MultipartFile

的控制器
@RequestMapping(value = "/uploadImage" )
@ResponseBody
public ResponseEntity<String> handleFileUpload(@Validated MultipartFileWrapper file,
        BindingResult result, Principal principal)

出现了新的要求。我们需要从外部资源(例如Dropbox)加载文件并在本地mashine上重新保存。我知道加载的链接是先决条件。

我想重用第一个控制器。因此我的目标 - 使用类型为MultipartFile的外部链接下载文件并将其传递给现有控制器。

春天如何解决我的问题?

P.S。

MultipartFileWrapper只是MultipartFile

下的包装器

1 个答案:

答案 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";