如何用Java编写批量文件下载并打包为zip的代码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1480个文字,预计阅读时间需要6分钟。
引用+批量下载思路,前端发送下载请求,携带参数,也可无参数默认批量下载页面全部数据;后台接收后进行数据处理,获取要下载文件的下载地址,循环下载地址,使用压缩流,将文件下载到指定位置。
引言
批量下载思路,首先前端发送下载请求,携带必要参数,也可无参默认批量下载页面全部数据;后台接收后进行数据处理拿到要下载文件的下载地址,循环下载地址,用压缩流,将文件直接写入压缩包,最后利用文件下载将压缩包输出给前端。
一、前端JS发送下载请求
1、ajax无法发送下载请求
关于下载的常见需求无非就是点击按钮下载或者选中点击批量下载,点击下载或批量下载后,携带参数向后台发送下载请求,但是JS中的ajax无法触发浏览器的下载机制,这也是处于安全考虑,所以下载请求不可以通过发送ajax请求实现。
2、js发送下载请求:超链接方式
我们可以通过< a >标签实现,在a标签的href中拼接get请求并携带所需参数,如下
<a href="localhost:8080/download/?ids=123,234&fileName=down">下载</a>
批量下载,前端可以传每条数据的id,用逗号拼接成字符串,后台接收后进行数据处理,然后进行批量下载,但是此方式有局限性,如果我选中了很多条数据,每条数据的id都是32位UUID,那get请求无法携带大量参数,所以这种方式并不适合批量下载,只适合单条数据下载。
本文共计1480个文字,预计阅读时间需要6分钟。
引用+批量下载思路,前端发送下载请求,携带参数,也可无参数默认批量下载页面全部数据;后台接收后进行数据处理,获取要下载文件的下载地址,循环下载地址,使用压缩流,将文件下载到指定位置。
引言
批量下载思路,首先前端发送下载请求,携带必要参数,也可无参默认批量下载页面全部数据;后台接收后进行数据处理拿到要下载文件的下载地址,循环下载地址,用压缩流,将文件直接写入压缩包,最后利用文件下载将压缩包输出给前端。
一、前端JS发送下载请求
1、ajax无法发送下载请求
关于下载的常见需求无非就是点击按钮下载或者选中点击批量下载,点击下载或批量下载后,携带参数向后台发送下载请求,但是JS中的ajax无法触发浏览器的下载机制,这也是处于安全考虑,所以下载请求不可以通过发送ajax请求实现。
2、js发送下载请求:超链接方式
我们可以通过< a >标签实现,在a标签的href中拼接get请求并携带所需参数,如下
<a href="localhost:8080/download/?ids=123,234&fileName=down">下载</a>
批量下载,前端可以传每条数据的id,用逗号拼接成字符串,后台接收后进行数据处理,然后进行批量下载,但是此方式有局限性,如果我选中了很多条数据,每条数据的id都是32位UUID,那get请求无法携带大量参数,所以这种方式并不适合批量下载,只适合单条数据下载。

