九、文件上传
1,效果图
(1)下面通过样例演示如何使用 RestTemplate 上传文件。这里使用 Form 表单的方式进行提交,上传时除了一个文件外还附带有两个自定义参数。
(2)接收端收到文件后会打印出相关参数、以及文件相关数据,并返回成功信息。(3)发送方收到反馈后将反馈信息打印出来:
2,样例代码
(1)文件发送端代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | @RestController public class HelloController { @Autowired private RestTemplate restTemplate; @GetMapping ( "/test" ) public void test() { // 上传接口 // 待上传的文件 String filePath = "/Users/hangge/Desktop/test.txt" ; // 封装请求参数 FileSystemResource resource = new FileSystemResource( new File(filePath)); MultiValueMap<string, object= "" > param = new LinkedMultiValueMap<>(); param.add( "myFile" , resource); param.add( "param1" , "12345" ); param.add( "param2" , "hangge" ); // 发送请求并输出结果 System.out.println( "--- 上传文件 ---" ); String s = restTemplate.postForObject(url, param, String. class ); System.out.println(s); } }</string,> |
(2)文件接收端代码如下:
为方便演示,接收端这边的代码比较简单。如果想要进一步操作,比如:文件重命名、文件保存、相关上传参数的配置,可以参考我之前写的文章:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | @RestController public class HelloController { @PostMapping ( "/upload" ) public String upload(String param1, String param2, MultipartFile myFile) { System.out.println( "--- 接收文件 ---" ); System.out.println( "param1:" + param1); System.out.println( "param2:" + param2); String originalFilename = myFile.getOriginalFilename(); System.out.println( "文件原始名称:" + originalFilename); try { String string = new String(myFile.getBytes(), "UTF-8" ); System.out.println( "文件内容:" + string); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 处理文件内容... return "OK" ; } } |
原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2518.html