Forest上传下载功能使用
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上传下载功能使用相关推荐
- 教你如何实现c#文件上传下载功能
简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- 文件的上传下载功能的实现(包括进度条)[telerik控件]
文件的上传下载功能的实现(包括进度条) 1.准备工作 首先我们需要Telerik控件,数据库,上传文件文件夹. Telerik控件: RadUpload.RadProgressManager.RadP ...
- ssm框架验证码图片加载不出_基于SSM框架的文件图片上传/下载功能实现
前一段时间很多做毕业设计的同学问:如何写图片和文件的上传下载功能,今天正好有时间,所以就做了一个案例,详细的讲解这个功能. 框架结构: 对于很多做过开发的而言,上传功能肯定都用过,而且用到的场景很多, ...
- 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现
文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...
- SpringBoot2.x集成mongoDB4.0实现音频文件的上传下载功能
最近项目要用到文件上传下载功能,但是这些音频文件都很大,放到关系型数据库就不太好了(其实是太不好了),占内存不说还慢的要死,所以考虑使用分布式文件系统或者非关系型数据库来实现.由于分布式文件系统没有用 ...
- java歌曲上传下载功能实现,Java上传下载功能的实现详解
上传下载是很简单的功能,但是每次用的时候还是要查,这里整理一下 前台: 提交 主要注意: enctype="multipart/form-data" method="po ...
- Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能
本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...
- java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解
今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...
最新文章
- h265webplayer
- 2018python培训-2018python深度学习核心技术培训班
- python 转 exe -- py2exe库实录
- 利用vagrant快速搭建rails开发环境
- 实例使用pyhanlp创建中文词云
- Zju2112 Dynamic Rankings(树状数组套可持久化权值线段树)
- php控制器教程,laravel基础教程 -- 控制器
- 中对曲线进行斜率提取_Au中的EQ处理方法——图形均衡器和参数均衡器
- 使用 MIDP 底层用户接口 API
- [Android]PhoneGap源码分析——白名单
- 感觉csdn论坛不是很好用,感觉……
- django基础 第一章 环境搭建
- 图像匹配 一些基本算法
- 集合竞价如何买入_教你几招!什么是集合竞价?散户如何参与集合竞价?
- 简单学生成绩分析系统
- Hibernate使用详解(一)
- 第十七届全国大学生智能汽车竞赛讯飞-家庭服务机器人挑战赛全国选拔赛规则
- Android 应用广告过滤几种方式
- 英特尔发布酷睿系列 | 历史上的今天
- 简述DB ,DBMS与DBS