玖叶教程网

前端编程开发入门

restTemplate调用外部接口实现文件上传!

文件上传和普通的传参还是有区别的,涉及到文件流的转换,写调用外部接口实现文件上传我在网上找了很多资料,大多数资料都不全,无法测试成功!

最后我找了一种方式,终于测试成功,分享给大家!直接上代码,复制可用!

public String uploadImg(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {

String contentType = file.getContentType(); //图片文件类型

String fileName = file.getOriginalFilename(); //图片名字

HttpHeaders headers = new HttpHeaders() ;

headers.setContentType(MediaType.APPLICATION_JSON);

MediaType type = MediaType.parseMediaType("multipart/form-data");

headers.setContentType(type);

String filePath = request.getSession().getServletContext().getRealPath("/")+file.getOriginalFilename();

File files = new File(filePath);

if(!files.exists()){

files.createNewFile();

}

// 转存文件

file.transferTo(files);

FileSystemResource resource = new FileSystemResource(files);

String strings = "";

try {

MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();

param.add("file", resource);

param.add("fileName", fileName);

String url = "" ;

HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(param, headers);

ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);

strings = responseEntity.getBody() ;

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

// 返回图片的存放路径

return strings;

}

我展示的只是后台调用时候的处理,前端传文件的方式可以在网上找,资料很多!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言