`

文件批量下载

阅读更多

 java下载多个文件,可以先把多个文件打包压缩成  zip 文件,然后下载zip文件

 代码如下:

       /**
	 * 生成zip
	 * @param sourcePath 原文件夹路径
	 * @param zipPath 生成的zip路径
	 */
	public static void createZip(String sourcePath, String zipPath) {
	    FileOutputStream fos = null;
	    ZipOutputStream zos = null;
	    try {
	        fos = new FileOutputStream(zipPath);
	        zos = new ZipOutputStream(fos);
	        writeZip(new File(sourcePath), "", zos);
	    } catch (FileNotFoundException e) {
	        e.printStackTrace();
	    } finally {
	        try {
	            if (zos != null) {
	                zos.close();
	            }
	        } catch (IOException e) {
	        	 e.printStackTrace();
	        }
	    }
	}
	private static void writeZip(File file, String parentPath, ZipOutputStream zos) {
	    if(file.exists()){
	        if(file.isDirectory()){//处理文件夹
	            parentPath+=file.getName()+File.separator;
	            File [] files=file.listFiles();
	            for(File f:files){
	                writeZip(f, parentPath, zos);
	            }
	        }else{
	            FileInputStream fis=null;
	            DataInputStream dis=null;
	            try {
	                fis=new FileInputStream(file);
	                dis=new DataInputStream(new BufferedInputStream(fis));
	                ZipEntry ze = new ZipEntry(parentPath + file.getName());
	                zos.putNextEntry(ze);
	                zos.setEncoding("GBK");
	                byte [] content=new byte[1024];
	                int len;
	                while((len=fis.read(content))!=-1){
	                    zos.write(content,0,len);
	                    zos.flush();
	                }
	                 
	             
	            } catch (FileNotFoundException e) {
	                e.printStackTrace();
	            } catch (IOException e) {
	            	e.printStackTrace();
	            }finally{
	                try {
	                    if(dis!=null){
	                        dis.close();
	                    }
	                }catch(IOException e){
	                	e.printStackTrace();
	                }
	            }
	        }
	    }
	}

 

 调用方法:

.createZip(FilePath+fileNameAll, FilePath+fileNameAll+".zip");

 接下来就是下载:

 

       /**
	 * 下载公共方法
	 * @param response
	 * @param str 下载的文件名
	 */
	 private void downFile(HttpServletResponse response, HttpServletRequest request,String str) {   
	        try {   
	        	String FilePath = request.getSession().getServletContext().getRealPath(File.separator);
	            String path = FilePath + str;   
	            File file = new File(path);   
	            if (file.exists()) {   
	                InputStream ins = new FileInputStream(path);   
	                BufferedInputStream bins = new BufferedInputStream(ins);// 放到缓冲流里面   
	                OutputStream outs = response.getOutputStream();// 获取文件输出IO流   
	                BufferedOutputStream bouts = new BufferedOutputStream(outs);   
	                response.setContentType("application/x-download");// 设置response内容的类型   
	                response.setHeader(   
	                        "Content-disposition",   
	                        "attachment;filename="  
	                                + URLEncoder.encode(str, "UTF-8"));// 设置头部信息   
	                int bytesRead = 0;   
	                byte[] buffer = new byte[8192];   
	                // 开始向网络传输文件流   
	                while ((bytesRead = bins.read(buffer, 0, 8192)) != -1) {   
	                    bouts.write(buffer, 0, bytesRead);   
	                }   
	                bouts.flush();// 这里一定要调用flush()方法   
	                ins.close();   
	                bins.close();   
	                outs.close();   
	                bouts.close();  
	            } else {   
	                
	            }   
	        } catch (IOException e) {   
	            
	        }   
	    }   

 

 

 

 

 

分享到:
评论

相关推荐

    文档批量下载器.rar

    在实际操作中,用户需要根据提供的“文档批量下载器”文件进行安装和配置。通常,该程序会带有用户界面,用户只需按照提示操作即可。在初次使用前,建议阅读软件的帮助文档或教程,以充分了解其功能和操作方法,从而...

    URL文件批量下载器.zip

    在互联网信息爆炸的时代,我们需要经常从各种网站上批量下载文件,例如图片、文档、音频等。这时,一个高效的URL文件批量下载器就显得尤为重要。"URL文件批量下载器.zip"就是这样一个工具,它能够帮助用户快速、方便...

    小密圈文件批量下载工具

    小密圈文件批量下载工具是一款专门针对小密圈平台设计的应用程序,旨在帮助用户高效、便捷地下载小密圈内的各类文件。小密圈作为一个知识分享社区,用户常常会发布和分享各种有价值的文档、音频、视频等资源。然而,...

    文件批量下载器

    这种批量下载方式特别适用于需要获取大量网页图片、文档或其他文件的场景,如数据抓取、素材收集等。 在提供的文件列表中,我们可以看到以下几个关键文件: 1. **DownUrlImage.exe.config**:这是应用程序的配置...

    星期八文档批量下载工具V1.03中文绿色版

    星期八文档批量下载工具是一款功能强大、便捷实用的文档下载软件,软件专为星期八网站用户设计,能够自动搜索采集下载文档。软件方便简单,可以免费下载所有文档,需要的话可以来下载使用。 功能特点 1、具有强大...

    豆丁文档批量下载工具1

    4. 豆丁文档下载工具.exe:这是该软件的主要执行程序,用户通过运行这个文件启动豆丁文档批量下载工具,进行文档的下载操作。 5. download:这可能是软件的配置文件或数据目录,包含用户的下载设置、历史记录等信息...

    文件批量下载工具(高速下载版)

    文件批量下载工具,如其名,是专门设计用于高效、大量地下载互联网上的文件的软件。这类工具通常具有多种功能,以满足用户在不同场景下的需求。高速下载版的批量下载工具更是强调了其在速度方面的优化,确保用户能够...

    文件批量下载/解压程序

    文件批量下载/解压程序 将批量文件从网上下载回来,根据需要解压在某些路径下。 代码很简单,设计了两个线程类,下载线程和解压线程。 运用的三方VCL有。 Indy(D2K7自带)VclZip Siow_OBRAR_v0.04 Win2K3 + D...

    共享文档批量下载器

    【共享文档批量下载说明书.pdf】文件很可能是对这款软件的详细使用指南,包含如何安装、设置参数、操作方法以及常见问题解答等内容。用户在使用前应该仔细阅读这份说明书,以便更好地理解和利用软件的各项功能。 ...

    batchurldown_网址文件批量下载软件.zip

    以"batchurldown_网址文件批量下载软件"为例,这种工具能够帮助用户快速、高效地完成大量网址资源的下载任务。本文将深入探讨批量下载软件的工作原理、功能以及实际应用。 批量下载软件的核心在于其能够解析并处理...

    kettle7.1批量下载HTTP文件

    【Kettle7.1批量下载HTTP文件】是一个利用Pentaho Data Integration(也称为Kettle或Spoon)工具实现从HTTP源批量下载文件的实践案例。Kettle是一款强大的ETL(提取、转换、加载)工具,它允许用户通过图形化界面...

    Spring Boot中使用Java实现文件批量下载与压缩功能

    在Web应用开发中,经常需要提供给用户批量下载的功能,尤其是在文件管理或者文档分享等场景下。传统的做法是一次只下载一个文件,这不仅降低了用户体验,还可能增加服务器的压力。为了解决这一问题,我们可以利用...

    文档批量下载工具《老牛下书》最新版

    《老牛下书》是一款专为用户设计的文档批量下载工具,其最新版本提供了更为高效和便捷的服务。这款软件能够自动搜索并下载网络上的各类文档,极大地节省了用户的时间和精力,尤其对于需要大量收集和整理资料的人员来...

    ios-文件批量下载.zip

    在iOS开发中,文件批量下载是一项常见的任务,尤其是在构建应用时需要从服务器获取大量资源时。这个名为"ios-文件批量下载.zip"的压缩包很可能包含了一种实现此功能的解决方案,它允许开发者以两种不同的方式下载...

    QQ群共享群文件搜索工具批量下载工具

    批量下载功能对于教师整理教学资料、企业员工收集工作文档或个人整理信息等场景非常实用。 此外,提供的“QQShare.exe”文件很可能是该工具的执行程序,用户运行这个文件即可启动工具进行操作。而“更新内容.txt”...

    iShareDoc-新浪爱问文档批量下载工具

    这时,一款名为"IShareDoc"的工具应运而生,它是一款专门针对新浪爱问资料库设计的文档批量下载利器。 iShareDoc的核心功能在于它的批量下载能力。用户只需提供所需下载文档的URL列表,软件就能自动、快速地将这些...

    Servlet实现多文件批量下载

    批量下载通常涉及到将多个文件打包成一个压缩文件,然后提供给用户下载,这样可以极大地提高下载效率,尤其当用户需要下载大量小文件时。 首先,我们需要创建一个Servlet来处理用户的下载请求。在Servlet中,我们...

    TS文件下载器(按照M3U8列表 批量下载)

    批量 按照M3U8 最多50线程 下载TS文件。 1.网页打开视频后 按F12 找到M3U8文件 下载到本地。 2.找到一个*.ts文件的真实路径, 如 http://1.1.1.1/a/b/c/001.ts 和 http://1.1.1.1/a/b/c/002.ts 则 ...

    文件批量下载工具,含源码

    【标题】:“文件批量下载工具,含源码” 这个标题揭示了一个特定的软件应用,它是一个文件批量下载器。此工具的设计目标是为了高效地下载已知URL的多个文件,节省用户的时间和精力。批量下载在处理大量文件时非常...

    JAVA SFTP文件上传、下载及批量下载实例

    JAVA SFTP文件上传、下载及批量下载实例 在本篇文章中,我们将详细介绍JAVA SFTP文件上传、下载及批量下载的实例,包括相关的概念、API介绍、代码实现等方面的内容。 首先,我们需要了解什么是SFTP?SFTP(Secure ...

Global site tag (gtag.js) - Google Analytics