2015-08-22 1 views
1

У меня уже есть контроллер, который принимает MultipartFileКак загрузить MultipartFile из-за внешней ссылки?

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

Был появились новые требования. Нам нужно загрузить файл из внешних ресурсов (например, dropbox) и сохранить в локальной машине. Я знаю ссылку для загрузки как необходимое условие.

Я хочу повторно использовать первый контроллер. Таким образом, моя цель - использовать внешний файл загрузки ссылок с типом MultipartFile и передать его существующему контроллеру.

Как весна предлагает решить мою проблему?

P.S.

MultipartFileWrapper просто обертка под MultipartFile

ответ

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