Forest上传下载的使用

上传下载 Forest 从 1.4.0 *版本开始支持多种形式的文件上传和文件下载功能

pom引入

<dependency><groupId>com.dtflys.forest</groupId><artifactId>forest-spring-boot-starter</artifactId><version>1.5.30</version>
</dependency>

yml基础配置

forest:bean-id: forestConfiguration # 在spring上下文中bean的id,默认值为forestConfigurationbackend: okhttp3             # 后端HTTP框架(默认为 okhttp3)max-connections: 500         # 连接池最大连接数(默认为 500)max-route-connections: 500   # 每个路由的最大连接数(默认为 500)max-request-queue-size: 100  # [自v1.5.22版本起可用] 最大请求等待队列大小max-async-thread-size: 300   # [自v1.5.21版本起可用] 最大异步线程数max-async-queue-size: 16     # [自v1.5.22版本起可用] 最大异步线程池队列大小timeout: 3000                # [已不推荐使用] 请求超时时间,单位为毫秒(默认为 3000)connect-timeout: 3000        # 连接超时时间,单位为毫秒(默认为 timeout)read-timeout: 3000           # 数据读取超时时间,单位为毫秒(默认为 timeout)max-retry-count: 0           # 请求失败后重试次数(默认为 0 次不重试)ssl-protocol: TLS            # 单向验证的HTTPS的默认TLS协议(默认为 TLS)log-enabled: true            # 打开或关闭日志(默认为 true)log-request: true            # 打开/关闭Forest请求日志(默认为 true)log-response-status: true    # 打开/关闭Forest响应状态日志(默认为 true)log-response-content: true   # 打开/关闭Forest响应内容日志(默认为 false)async-mode: platform         # [自v1.5.27版本起可用] 异步模式(默认为 platform)variables:xxBaseUrl: http://xxx:xx/testxxContentType: application/json

文件上传功能实现案例

用@DataFile注解修饰要上传的参数对象,OnProgress 参数为监听上传进度的回调函数

    @Post(url = "/upload")Map testUpload(@DataFile("file") String filePath, OnProgress onProgress);/*** File类型对象*/@Post(url = "/upload")Map testUpload(@DataFile("file") File file, OnProgress onProgress);/*** byte数组* 使用byte数组和Inputstream对象时一定要定义fileName属性*/@Post(url = "/upload")Map testUpload(@DataFile(value = "file", fileName = "${1}") byte[] bytes, String filename);/*** Inputstream 对象* 使用byte数组和Inputstream对象时一定要定义fileName属性*/@Post(url = "/upload")Map testUpload(@DataFile(value = "file", fileName = "${1}") InputStream in, String filename);/*** Spring Web MVC 中的 MultipartFile 对象*/@PostRequest(url = "/upload")Map testUpload(@DataFile(value = "file") MultipartFile multipartFile, OnProgress onProgress);/*** Spring 的 Resource 对象*/@Post(url = "/upload")Map testUpload(@DataFile(value = "file") Resource resource);

批量上传案例

    /*** 上传Map包装的文件列表* 其中 ${_key} 代表Map中每一次迭代中的键值* @param byteArrayMap* @return*/@PostRequest(url = "/upload")ForestRequest<Map> uploadByteArrayMap(@DataFile(value = "file", fileName = "${_key}") Map<String, byte[]> byteArrayMap);/*** 上传List包装的文件列表* 其中 ${_index} 代表每次迭代List的循环计数(从零开始计)* @param byteArrayList* @return*/@PostRequest(url = "/upload")ForestRequest<Map> uploadByteArrayList(@DataFile(value = "file", fileName = "test-img-${_index}.jpg") List<byte[]> byteArrayList);/*** 上传数组包装的文件列表* 其中 ${_index} 代表每次迭代List的循环计数(从零开始计)* @param byteArrayArray* @return*/@PostRequest(url = "/upload")ForestRequest<Map> uploadByteArrayArray(@DataFile(value = "file", fileName = "test-img-${_index}.jpg") byte[][] byteArrayArray);

文件下载功能实现案例

     /*** 方法上加上@DownloadFile注解* dir属性表示文件下载到哪个目录* filename属性表示文件下载成功后以什么名字保存,如果不填,这默认从URL中取得文件名* OnProgress参数为监听上传进度的回调函数*/@Get(url = "http://localhost:8080/images/xxx.jpg")@DownloadFile(dir = "${0}", filename = "${1}")File testDownloadFile(String dir, String filename, OnProgress onProgress);/*** 如果您不想将文件下载到硬盘上,而是直接在内存中读取,可以去掉@DownloadFile注解,并且用以下几种方式定义接口:*//*** 返回类型用byte[],可将下载的文件转换成字节数组* @return*/@GetRequest(url = "http://localhost:8080/images/test-img.jpg")byte[] downloadImageToByteArray();/*** 返回类型用InputStream,用流的方式读取文件内容* @return*/@GetRequest(url = "http://localhost:8080/images/test-img.jpg")InputStream downloadImageToInputStream();

Forest上传下载功能使用相关推荐

  1. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

  2. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  3. 文件的上传下载功能的实现(包括进度条)[telerik控件]

    文件的上传下载功能的实现(包括进度条) 1.准备工作 首先我们需要Telerik控件,数据库,上传文件文件夹. Telerik控件: RadUpload.RadProgressManager.RadP ...

  4. ssm框架验证码图片加载不出_基于SSM框架的文件图片上传/下载功能实现

    前一段时间很多做毕业设计的同学问:如何写图片和文件的上传下载功能,今天正好有时间,所以就做了一个案例,详细的讲解这个功能. 框架结构: 对于很多做过开发的而言,上传功能肯定都用过,而且用到的场景很多, ...

  5. 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现

    文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...

  6. SpringBoot2.x集成mongoDB4.0实现音频文件的上传下载功能

    最近项目要用到文件上传下载功能,但是这些音频文件都很大,放到关系型数据库就不太好了(其实是太不好了),占内存不说还慢的要死,所以考虑使用分布式文件系统或者非关系型数据库来实现.由于分布式文件系统没有用 ...

  7. java歌曲上传下载功能实现,Java上传下载功能的实现详解

    上传下载是很简单的功能,但是每次用的时候还是要查,这里整理一下 前台: 提交 主要注意: enctype="multipart/form-data" method="po ...

  8. Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能

    本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...

  9. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

最新文章

  1. h265webplayer
  2. 2018python培训-2018python深度学习核心技术培训班
  3. python 转 exe -- py2exe库实录
  4. 利用vagrant快速搭建rails开发环境
  5. 实例使用pyhanlp创建中文词云
  6. Zju2112 Dynamic Rankings(树状数组套可持久化权值线段树)
  7. php控制器教程,laravel基础教程 -- 控制器
  8. 中对曲线进行斜率提取_Au中的EQ处理方法——图形均衡器和参数均衡器
  9. 使用 MIDP 底层用户接口 API
  10. [Android]PhoneGap源码分析——白名单
  11. 感觉csdn论坛不是很好用,感觉……
  12. django基础 第一章 环境搭建
  13. 图像匹配 一些基本算法
  14. 集合竞价如何买入_教你几招!什么是集合竞价?散户如何参与集合竞价?
  15. 简单学生成绩分析系统
  16. Hibernate使用详解(一)
  17. 第十七届全国大学生智能汽车竞赛讯飞-家庭服务机器人挑战赛全国选拔赛规则
  18. Android 应用广告过滤几种方式
  19. 英特尔发布酷睿系列 | 历史上的今天
  20. 简述DB ,DBMS与DBS

热门文章

  1. 瑞星微RK3288开发板
  2. narwal无法连接机器人_ABB机器人驱动通讯连接不上故障维修方法
  3. 在线教育平台、网校搭建、远程教育平台搭建技术选型(268教育)
  4. TFT-LCD液晶显示器的工作原理
  5. 今日早报 每日精选12条新闻简报 每天一分钟 知晓天下事 8月13日
  6. 测试人员,如何对直播类产品的直播质量进行测试呢?
  7. OpenCV之图像的载入、显示与输出
  8. 广告大腕江南春:广告语是老板的责任
  9. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxcccccccccccc
  10. Qt -设计嵌入式设备用户界面的利器