实现多个存储服务器上文件浏览器打包下载
关于本地文件zip打包返回给浏览器下载,这边有个很好的例子读取本地文件打包返回给浏览器下载,基本能解决的相关问题。而最近因为项目原因,打包返回给浏览器下载的是存储在fdfs上文件,然后对此代码修改了下,解决了项目需求。所以就记录下,以便后续使用。
public void getAllFile(HttpServletResponse response,String callId) throws IOException{String zipName = "file.zip";//获取符合下载条件的实体列表,根据自己的需求定义List<FileBean> fileList = getFileList(callId);response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition","attachment; filename="+zipName);ZipOutputStream out = new ZipOutputStream(response.getOutputStream());try {for(FileBean fileBean: fileList){if(null==fileBean){continue;}//只改变了以下这个方法即可ZipUtils.doZip(fileBean.getFilePath(),fileBean.getFileName(), out);response.flushBuffer();}} catch (Exception e) {e.printStackTrace();}finally{out.close();}}
这边就ZipUtils工具类里的doZip()方法略微改变了下,如下:
public static void doZip(String inFile, String entryName,ZipOutputStream out)throws IOException {URL urlfile = null;HttpURLConnection httpUrl = null;BufferedInputStream bis = null;
// String entryName = null;
// if (!"".equals(dir)) {// entryName = dir + "/" + inFile.getName();
// } else {// entryName = inFile.getName();
// }ZipEntry entry = new ZipEntry(entryName);out.putNextEntry(entry);int len = 0;byte[] buffer = new byte[1024];
// FileInputStream fis = new FileInputStream(inFile);
// BufferedOutputStream bos = null;urlfile = new URL(inFile);httpUrl = (HttpURLConnection) urlfile.openConnection();httpUrl.connect();try {bis = new BufferedInputStream(httpUrl.getInputStream());} catch (FileNotFoundException f1) {return;}while ((len = bis.read(buffer)) > 0) {out.write(buffer, 0, len);out.flush();}out.closeEntry();bis.close();httpUrl.disconnect();}
即可正确实现多文件打包下载。当然,与此类同,其他相似的存储系统文件打包下载,也可如此操作,进行打包下载,
实现多个存储服务器上文件浏览器打包下载相关推荐
- zip格式压缩文件并打包下载
压缩文件并下载 zip格式压缩文件并打包下载 zip格式压缩文件并打包下载 Map<String, String> param = new HashMap<String, Strin ...
- 阿里云OSS文件批量打包下载
阿里云OSS文件批量打包下载 public void downloadReport(List<String> fileNames,HttpServletResponse response) ...
- JAVA实现文件批量打包下载
JAVA实现文件批量打包下载 实现 1.打包工具类的实现 /*** @author zhouxuan* @since 2019/4/19*/ public class ZipUtils {/*** @ ...
- ASP.NET多文件批量打包下载
在项目实施中,遇到了将多个文件一起打包后,提供给用户下载.如:在一个ASP.NET的开发项目中,通过一个GridView选中对应行数据的CheckBox,就可以实现对选中文件的打包下载了. 在对多文件 ...
- JavaWeb通过http下载多个文件,打包下载,压缩下载
JavaWeb通过http下载多个文件,打包下载,压缩下载 DownloadController.java 代码如下 package gov.zhbs.web;import gov.zhbs.util ...
- C# 用zip,批量压缩文件,并打包下载
C# 用zip,批量压缩文件,并打包下载,无需产生临时文件,二种都可以 using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.Sharp ...
- java文件下载功能代码(单文件下载、多文件批量打包下载)——普遍适用
一.前言 程序员在做web等项目的时候,往往都需要添加文件上传.下载.删除的功能,有时是单文件,有时多文件批量 操作,而这些功能的代码程序员可以自己收藏起来当成工具使用,这样,程序员在进行程序设计 ...
- js多文件下载和多文件分文件夹打包下载并重命名
js多文件下载并重命名 let list=['...'] function downloadFile(list,index){//下载文件方法if(index>=list.length){ret ...
- .net core 文件夹打包下载
基于.net core api 接口返回文件流(批量打包多个文件生成zip) 防止多线程操作 上层代码如下 public class FileController : AbstractControll ...
最新文章
- 【OpenCV 4开发详解】图像LUT查找表
- 提高DB2数据库Web程序性能的两条规则
- 【bzoj5064】B-number 数位dp
- 避免强光的一些注意点
- [react] Mern和Yeoman脚手架有什么区别?
- C++:09---类静态成员、类常量成员
- c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!
- 关于@Mapper注解的几个问题
- 你代码里的 ThreadLocalRandom,真的安全吗?
- python--DenyHttp项目(1)--socket编程:客户端与服务器端
- 借呗还款日都是一样吗?
- indesign软件教程,如何将文本格式保存为样式?
- Windows Server 2008 R2的DHCP高可用
- 【CAD】机械类制图实用功能总结
- 周记录学习总结<大杂烩>
- NiFi用户指南文档分析(2)
- 利用word2vec训练词向量
- ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透
- ZJM 与纸条(KMP算法)
- 数电和计算机网络,数电计算机网络试卷2010A.doc
热门文章
- 展频(SSC)相关知识
- 50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 下
- 干货 | 什么是FOC?一文带你看BLDC电机驱动芯片及解决方案
- LaTeX常用格式学习笔记
- java要基础数学和英语吗,2022最新
- t检验、Wilcoxon 符号秩检验、Mann-Whitney 秩和检验 Python实现
- 如何两步完成网页到Android App转换
- There is no getter for property named 'DEPARTMENT_ID' in 'class com.sccy.hr.model.RewardsPunishment'
- unity-NPR-卡通渲染
- 图形学笔记(五)——曲线