2015-08-22 102 views
1

我已經有控制器,它接受MultipartFile如何從外部鏈接上載MultipartFile?

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

當時出現了新的要求。我們需要從外部資源(例如Dropbox)加載文件並在本地mashine上重新保存。我知道鏈接加載作爲先決條件。

我想重複使用第一個控制器。因此,我的目標 - 使用類型爲MultipartFile的外部鏈接下載文件並將其傳遞到現有控制器。

春天如何解決我的問題?

P.S.

MultipartFileWrapperMultipartFile

回答

0

只是包裝器我加入

<!-- Integration--> 
<dependency> 
    <groupId>org.springframework.integration</groupId> 
    <artifactId>spring-integration-http</artifactId> 
    <version>${spring.version}</version> 
</dependency> 

和下面的代碼(I減少異常處理)

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