千家信息网

WebClient中的文件上传与下载是怎样的

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这期内容当中小编将会给大家带来有关WebClient中的文件上传与下载是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。WebClient是从Spring 5开
千家信息网最后更新 2025年12月02日WebClient中的文件上传与下载是怎样的

这期内容当中小编将会给大家带来有关WebClient中的文件上传与下载是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

WebClient是从Spring 5开始提供的一个HTTP客户端库,为了使用WebClient进行文件上传和下载,需要我们先编写服务端的支持文件上传和下载的程序。请参考我之前写的一篇文章:SpringBoot实现本地存储文件上传及提供HTTP访问服务。按照此文完成学习之后,可以获得

  • 一个以访问服务URI为"/upload"的文件上传服务端点

  • 服务端点上传文件成功后会返回一个HTTP连接,可以用来下载文件。

下面我们就开始学习使用WebClient是HTTP客户端库,进行文件的上传与下载。

一、文件上传

在本地8888端口搭建了一个文件上传接收的服务端,服务端点为"/upload"。上传本地磁盘中的一个文件"D:\data\local\splash.png"

@SpringBootTestclass UpDownLoadTests {   //创建webClient   private WebClient webClient = WebClient.builder()               .baseUrl("http://localhost:8888/")               .build();   [@Test](https://my.oschina.net/azibug)   void testUpload()  {      // 待上传的文件(存在客户端本地磁盘)      String filePath = "D:\\data\\local\\splash.png";      // 封装请求参数      FileSystemResource resource = new FileSystemResource(new File(filePath));      MultiValueMap param = new LinkedMultiValueMap<>();      param.add("uploadFile", resource);  //服务端MultipartFile uploadFile      //param.add("param1", "test");   //服务端如果接受额外参数,可以传递      // 发送请求      Mono mono = webClient                  .post() // POST 请求                  .uri("/upload")  // 请求路径                  .contentType(MediaType.APPLICATION_FORM_URLENCODED)                  .body(BodyInserters.fromMultipartData(param))                  .retrieve() // 获取响应体                  .bodyToMono(String.class); //响应数据类型转换      // 输出结果      System.out.println(mono.block());   }}

输出打印结果如下:

文章上传之后返回一个HTTP URL访问地址,可以通过浏览器访问,也可以通过程序下载。

二、文件下载

执行下列代码之后,被下载文件url,会被正确的保存到本地磁盘目录

[@Test](https://my.oschina.net/azibug)void testDownLoad() throws IOException {   Mono mono = webClient               .get() // GET 请求               .uri("/2020/08/22/0f0a353a-7033-4a13-832e-d043f6360514.png")  // 请求路径               .accept(MediaType.APPLICATION_OCTET_STREAM)               .exchange(); // 获取响应体   ClientResponse response = mono.block();   Resource resource = response.bodyToMono(Resource.class).block();   assert resource != null;   Files.copy(resource.getInputStream(),            Paths.get("D:\\data\\local\\splash-down.png" ));}

上述就是小编为大家分享的WebClient中的文件上传与下载是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

文件 服务 客户 客户端 端点 内容 参数 可以通过 文章 磁盘 程序 篇文章 结果 路径 分析 学习 输出 成功 专业 中小 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 本地代码管理服务器权限 网络技术的变迁 服务器端口对应服务器 量子计算机与信息网络技术 服务器管理器增加角色 那个学校的数据库好 服务器上如何连接无线网络 黑龙江网络安全总队长 ibm服务器 固态硬盘 网络安全等保测评师怎么样 php读取数据库字段是文本 数据库自动安装在哪里 长沙物流软件开发团队 自建权威内网dns解析服务器 金蝶财务软件系统服务器 常州数据库管理师证 沙坪坝区企业网络技术服务活动 update无法连接到该服务器 机顶盒第三方软件连接不上服务器 数据库树形结构多条件查询 网络安全攻防演练会议总结 东方通连接mysql数据库配置 漳州市芒果互联网科技招聘 卖流量服务器价格 佳聘网络技术 网络安全保障网络数据的什么能力 ddr服务器是什么意思 计算机网络技术的论文5000字 英国网络安全战略2017 稻壳互联网信息科技
0