| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.uas.demo.api;
- import org.apache.commons.io.FilenameUtils;
- import org.apache.log4j.Logger;
- import org.springframework.core.io.FileSystemResource;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.HttpStatus;
- import org.springframework.http.ResponseEntity;
- import org.springframework.util.LinkedMultiValueMap;
- import org.springframework.util.MultiValueMap;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.client.RestTemplate;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.util.UriComponentsBuilder;
- import java.io.File;
- import java.io.IOException;
- import java.net.URI;
- @RestController
- @RequestMapping(value = "/api/utils/file")
- public class FileController {
- private final Logger logger = Logger.getLogger(getClass());
- private RestTemplate restTemplate;
- public FileController() {
- this.restTemplate = new RestTemplate();
- }
- @RequestMapping(method = RequestMethod.POST)
- @ResponseStatus(HttpStatus.CREATED)
- public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file, UriComponentsBuilder ucb) {
- String fileUrl = "";
- try {
- File uploadFile = File.createTempFile("tmp", "." + FilenameUtils.getExtension(file.getOriginalFilename()));
- file.transferTo(uploadFile);
- FileSystemResource resource = new FileSystemResource(uploadFile);
- MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
- param.add("file", resource);
- fileUrl = restTemplate.postForObject("http://10.10.100.23:20070/file/part", param, String.class);
- uploadFile.deleteOnExit();
- } catch (IOException e) {
- e.printStackTrace();
- }
- HttpHeaders headers = new HttpHeaders();
- URI uri = ucb.replacePath(fileUrl)
- .build()
- .toUri();
- headers.setLocation(uri);
- logger.info(String.format("Upload file[%s]", fileUrl));
- return new ResponseEntity<>(fileUrl, headers, HttpStatus.CREATED);
- }
- }
|