Spring Boot RestTemplate文件上传

@ResponseBody  
@RequestMapping(value = "/upload.do", method = RequestMethod.POST)  
public String upload(String fileName, MultipartFile jarFile) {  
    // 下面是测试代码  
    System.out.println(fileName);  
    String originalFilename = jarFile.getOriginalFilename();  
    System.out.println(originalFilename);  
    try {  
        String string = new String(jarFile.getBytes(), "UTF-8");  
        System.out.println(string);  
    } catch (UnsupportedEncodingException e) {  
        e.printStackTrace();  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
    // TODO 处理文件内容...  
    return "OK";  
}  


@Test  
public void testUpload() throws Exception {  
    String url = "http://127.0.0.1:8080/test/upload.do";  
    String filePath = "C:\\Users\\MikanMu\\Desktop\\test.txt";  
  
    RestTemplate rest = new RestTemplate();  
    FileSystemResource resource = new FileSystemResource(new File(filePath));  
    MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();  
    param.add("jarFile", resource);  
    param.add("fileName", "test.txt");  
  
    String string = rest.postForObject(url, param, String.class);  
    System.out.println(string);  
} 
String string = rest.postForObject(url, param, String.class);  
可以换成以下方式 HttpEntity
<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String,Object>>(param); ResponseEntity<String> responseEntity = rest.exchange(url, HttpMethod.POST, httpEntity, String.class); System.out.println(responseEntity.getBody());

 

     
@PostMapping(value = "/uploadFile")
    @ResponseBody
    @ApiOperation(value = "上传附件", notes = "返回结果,SUCCESS:200,FAILED:500", httpMethod = "POST")
    public String upload(@ApiParam MultipartFile importFile) throws Exception {
        String suffix = importFile.getOriginalFilename().substring(importFile.getOriginalFilename().lastIndexOf("."));
        String showUrl = aLiYunOssService.upload(importFile.getBytes(), suffix);
        return showUrl;

    }

 

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
ByteArrayResource arrayResource = new ByteArrayResource(getBytes(),"test.jpg");
parts.add(
"importFile", arrayResource);
HttpEntity
<MultiValueMap<String, Object>> httpEntity2 = new HttpEntity<MultiValueMap<String,Object>>(parts);
ResponseEntity
<String> responseEntity2 = rest.exchange(url, HttpMethod.POST, httpEntity2, String.class);
System.out.println(
"返回地址1==="+responseEntity2.getBody());

 

posted @ 2017-06-07 14:05  也许还年轻  阅读(14291)  评论(0编辑  收藏  举报