java文件批量导出
java文件批量导出
废话不多说直接上代码
//获取文件名字
private String getFileTypeByUrl(String url) {
final String[] split = url.split("/");
return split[split.length-1];
}
//批量下载
@RequestMapping
public void downloadFile(HttpServletRequest request, HttpServletResponse response) {
String hh=request.getParameter(“epath”);
//从数据库获取相应的数据 更具自己逻辑写
List<Map<String,Object>> lists=service.getZzfils(hh);
String htname=“合同下载”;
if(lists!=null && lists.size()>0){
htname=lists.get(0).get(“GDJ”).toString();
}
//String[] urls = hh.split(",");
// 响应头的设置
response.reset();
response.setCharacterEncoding(“utf-8”);
response.setContentType(“multipart/form-data”);
// 设置压缩包的名字// 解决不同浏览器压缩包名字含有中文时乱码的问题String downloadName = htname+System.currentTimeMillis()+".zip";String agent = request.getHeader("USER-AGENT");try {if (agent.contains("MSIE") || agent.contains("Trident")) {downloadName = java.net.URLEncoder.encode(downloadName, "UTF-8");} else {downloadName = new String(downloadName.getBytes("UTF-8"), "ISO-8859-1");}} catch (Exception e) {e.printStackTrace();}response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");// 设置压缩流:直接写入response,实现边压缩边下载ZipOutputStream zipos = null;try {zipos = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));zipos.setMethod(ZipOutputStream.DEFLATED); // 设置压缩方法} catch (Exception e) {e.printStackTrace();}// 循环将文件写入压缩流DataOutputStream os = null;for (int i = 0; i < lists.size(); i++) {String fileName = getFileTypeByUrl(lists.get(i).get("ZZFILE").toString());File file = new File(uploadPathTemp+"/"+lists.get(i).get("ZZFILE").toString());try {// 添加ZipEntry,并ZipEntry中写入文件流// 这里,加上i是防止要下载的文件有重名的导致下载失败zipos.putNextEntry(new ZipEntry(fileName));os = new DataOutputStream(zipos);InputStream is = new FileInputStream(file);byte[] b = new byte[100];int length = 0;while ((length = is.read(b)) != -1) {os.write(b, 0, length);}is.close();zipos.closeEntry();} catch (IOException e) {e.printStackTrace();}}// 关闭流try {os.flush();os.close();zipos.close();} catch (IOException e) {e.printStackTrace();}
java文件批量导出相关推荐
- java文件批量下载打包成zip
1.首先html页面获取当前需要下载文件的id集合将转成字符串形式传递到后台. ................ 2 .下面就是获取字符串之后的批量下载/*** 多文件批量下载压缩成zip**root ...
- java文件批量重命名文件,文件批量工具(File Attribute Changer)
文件批量工具(File Attribute Changer)是一款对文件属性批量修改,以及对文件批量重命名的工具,所 谓的文件属性是指隐藏属性,在查看磁盘文件的名称时,系统一般不会显示具有隐藏属性的文 ...
- [Pulgin] 利用swfupload实现java文件批量上传
URL:http://blog.csdn.net/xuweilinjijis/article/details/8876305 之前在网上找过很多相关资料,很多所谓的批量上传都是忽悠人的,真正的批量上传 ...
- C#使用模板文件批量导出word文档
需求背景 因为疫情爆发,进入一级响应状态,公安部门进行了严格出入境管理,需要对每个出入境的人进行状态跟踪. 疫情专班会将出入境的每个人员汇总在一张Excel表中,如下图所示: 每一行对应一个人员信息, ...
- java文件无法导出excel文件,【excel表格文件格式无效】java导出excel,excel打不开,报文件格式无效,怎么解决!...
excel提示 打开的文件.xls的格式与文件扩展名不一致怎么办 如果打开文件的格式与文件的扩展名不一致,只要能够打开就不用去管他. java导出excel,excel打不开,报文件格式无效,怎么解决 ...
- java文件批量改名代码_[原创]JAVA版批量更名程序(附源码)(要求加分)
这是上学时JAVA课程的课程实践,因为学习好,老师让写一个比较有难度的程序出来,不要随便写个简单的来应付. 当时也不知道什么类型的程序在JAVA里比较有难度,正好在JAVA中文论坛里看到有人问用JAV ...
- java文件批量重命名6,批量重命名文件DOS脚本
我自己写的一个进行批量文件重命名的批处理文件: rem modify the file name to the regular name echo modifing -- forfiles /s /m ...
- mysql java文件导入导出_MySQL文件导出和导入
一.导出数据库用mysqldump命令: 注意mysql的安装路径,即此命令的路径 1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr/ ...
- java文件批量下载
/** * 批量下载控制 * @param response * @param request */ @RequestMapping(value = "/file/batDownload&q ...
最新文章
- 艰难就业季,2020 AI算法岗春招汇总 面经大全来了!!!
- Lua中的模块与module函数详解
- Java黑皮书课后题第4章:4.16(随机字符)编写一个程序,使用Math.random()方法显示一个随机的大写字母
- java二分法查找法算法_算法二:二分法查找(java语言)
- Java Object类的各个方法
- 实验计算机控制器的实验结论,计算机毕业论文控制器实验报告.doc
- cdn对动态网站有作用吗_网站选择cdn加速有什么作用?
- 如何在psql中切换数据库?
- 常见的几种网络抓包及协议分析工具
- 微信小程序开发页面介绍
- 智安网络详解:零信任网络访问 (ZTNA)原理
- 火狐资产2.6浏览器 下载_通过浏览器体验资产商店!
- nyoj-891-找点
- AE影视后期之跳跃音符制作
- python真实收入曝光_程序员工资很高吗?资深HR透露真实收入,网友:说的很现实...
- 术业有专攻,数据库的 dba
- 12、go语言的duck typing
- 农民工自学java到找到工作的前前后后
- Android ListView 拖拽处理
- wordpress的事件以及钩子介绍