精华内容
下载资源
问答
  • java 下载多个文件

    2019-12-16 17:11:21
    private void feedBackDirectMultiDownload(HttpServletRequest request, HttpServletResponse response, List<ResourcesFile> fileNameArr) throws ... //压缩文件初始设置 String path = System.g...
    private void feedBackDirectMultiDownload(HttpServletRequest request, HttpServletResponse response, List<ResourcesFile> fileNameArr) throws IOException {
        //压缩文件初始设置
        String path = System.getProperty("user.dir");  // 下载地址 系统默认地址
        String fileZip = "资料.zip"; // 拼接zip文件
        String filePath = path + "\\" + fileZip;//之后用来生成zip文件
        // 创建临时压缩文件
        try {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
            ZipOutputStream zos = new ZipOutputStream(bos);
            ZipEntry ze = null;
            for (int i = 0; i < fileNameArr.size(); i++) {//将所有需要下载的pdf文件都写入临时zip文件
                File file = new File(fileNameArr.get(i).getFilePath());
                if (file.exists()) {
                    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
                    //将原名字压缩到压缩包中
                    ze = new ZipEntry(fileNameArr.get(i).getPrimaryFileName());
                    zos.putNextEntry(ze);
                    int s = -1;
                    while ((s = bis.read()) != -1) {
                        zos.write(s);
                    }
                    bis.close();
                }
            }
            zos.flush();
            zos.close();
        } catch (IOException e) {
            e.printStackTrace();
            logger.error("下载异常" +  e);
        }
        //进行浏览器下载
        //获得浏览器代理信息
        final String userAgent = request.getHeader("USER-AGENT");
        //判断浏览器代理并分别设置响应给浏览器的编码格式
        String finalFileName = null;
        if (StringUtils.contains(userAgent, "MSIE") || StringUtils.contains(userAgent, "Trident")) {//IE浏览器
            finalFileName = URLEncoder.encode(fileZip, "UTF8");
            System.out.println("IE浏览器");
        } else if (StringUtils.contains(userAgent, "Mozilla")) {//google,火狐浏览器
            finalFileName = new String(fileZip.getBytes(), "ISO8859-1");
        } else {
            finalFileName = URLEncoder.encode(fileZip, "UTF8");//其他浏览器
        }
        response.setContentType("application/x-download");//告知浏览器下载文件,而不是直接打开,浏览器默认为打开
        response.setHeader("Content-Disposition", "attachment;filename=\"" + finalFileName + "\"");//下载文件的名称
    
        ServletOutputStream servletOutputStream = response.getOutputStream();
        DataOutputStream temps = new DataOutputStream(
                servletOutputStream);
    
        DataInputStream in = new DataInputStream(
                new FileInputStream(filePath));//浏览器下载文件的路径
        byte[] b = new byte[2048];
        File reportZip = new File(filePath);//之后用来删除临时压缩文件
        try {
            while ((in.read(b)) != -1) {
                temps.write(b);
            }
            temps.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (temps != null) temps.close();
            if (in != null) in.close();
            if (reportZip != null) reportZip.delete();//删除服务器本地产生的临时压缩文件
            servletOutputStream.close();
        }
    }
    
    展开全文
  • java下载多个文件,打包成zip格式

    千次阅读 2020-01-03 10:16:29
    java下载多个文件,打包成zip格式 我们在使用java下载时候,通常是通过路径获取二进制文件,再通过HttpServletResponse发送到前台,最近开发中有一个需求是将多张图片打包成zip格式进行下载。代码如下: ...

    java下载多个文件,打包成zip格式

    我们在使用java下载时候,通常是通过路径获取二进制文件,再通过HttpServletResponse发送到前台,最近开发中有一个需求是将多张图片打包成zip格式进行下载。代码如下:

    ZipOutputStream zos = null;
    BufferedInputStream br = null;
    //下载方法
    try {
        //文件的名称
        String downloadFilename = registrationLoginResultVo.getBusinessName()+".zip";
        response.reset();
        //设置格式
        response.setContentType("application/x-msdownload");
        response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(downloadFilename, "UTF-8"));
        //ZipOutputStream来对文件压缩操作
        zos = new ZipOutputStream(response.getOutputStream());
        //循环下载文件,并将之放到ZipOutputStream中
        for (int i = 0; i < filePath.length; i++) {
            //filePath是下载路径集合
            //fileName是文件名称
            zos.putNextEntry(new ZipEntry(fileName[i]+".jpg"));
            new BufferedInputStream(new FileInputStream(filePath[i]));
            byte[] buffer = new byte[1024];
            int r = 0;
            while ((r = br.read(buffer)) != -1) {
                zos.write(buffer, 0, r);
            }
        }
        zos.flush();
    } catch (IOException e) {
        log.error("企业初审导出图片压缩包错误", e);
    }finally {
        try {
            zos.close();
            br.close();
        } catch (IOException e) {
            log.error("企业初审导出图片关闭流异常", e);
        }
    }

    前端使用xhr进行下载

    
    window.img = function img() {
        var supplierName = $("#businessName").val();
        layer.load(2);
        //下载图片格式
        var fileName = supplierName+".zip";
        var url = config.base_server + "路径?uuid="+uuid
        var xhr = new XMLHttpRequest();
        xhr.open("get", url, true);
        xhr.responseType = "blob";
        xhr.onload = function () {
            if (this.status == "200") {
                var content = this.response;
                var blob = new Blob([xhr.response]);
                //for IE
                if (window.navigator && window.navigator.msSaveOrOpenBlob) {
                    window.navigator.msSaveOrOpenBlob(blob, fileName);
                } else {
                    var aElem = document.createElement('a');
                    aElem.download = fileName;
                    aElem.href = window.URL.createObjectURL(blob);
                    aElem.onload = function (e) {
                        window.URL.revokeObjectURL(aElem.href);
                    };
                    document.body.appendChild(aElem);
                    aElem.click();
                    document.body.removeChild(aElem);
                }
                layer.closeAll();
            }
        };
        xhr.setRequestHeader("Authorization", config.getToken());
        xhr.send();
    };

    以上就是全部内容,希望大家关注我的订阅号,我会在订阅号内为大家提供Java,小程序,Vue等知识的学习资料,为初学者解疑答惑,不定期更新面试题,谢谢大家支持。公众号名称:程序猿Time
    在这里插入图片描述

    展开全文
  • java下载多个文件文件

    2016-08-10 23:49:00
    第一步 将要下载多个文件打包成ZIP格式 public String makeZip(List<String> path) throws IOException{ byte[] buffer = new byte[1024]; //创建压缩包路径 String strZipName = "c:/Demo.zip"; ...

    第一步 将要下载的多个文件打包成ZIP格式

    public String makeZip(List<String> path) throws IOException{

    byte[] buffer = new byte[1024];
    //创建压缩包路径
    String strZipName = "c:/Demo.zip";

    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipName));

    for(String str:path){
    FileInputStream fis = new FileInputStream(file1[i]);
    out.putNextEntry(new ZipEntry(str.getName()));
    int len;
    while((len = fis.read(buffer))>0) {
    out.write(buffer,0,len);

    }
    out.closeEntry();

    fis.close();
    }
    out.close();

    return strZipName;
    }

    第二步 普通的下载

     

    File file = new File(realpath );
    String filename = file.getName();

    ServletOutputStream out;

    response.setContentType("multipart/form-data");
    response.setHeader("Content-Disposition", "attachment;fileName="+new String(filename.getBytes("gbk"), "iso-8859-1"));

    try {
    FileInputStream inputStream = new FileInputStream(file);

    //3.通过response获取ServletOutputStream对象(out)
    out = response.getOutputStream();

    int b = 0;
    byte[] buffer = new byte[512];
    while ((b=inputStream.read(buffer))>0){

    //4.写到输出流(out)中
    out.write(buffer,0,b);
    }
    inputStream.close();
    out.close();
    out.flush();

    } catch (IOException e) {
    e.printStackTrace();
    }

    转载于:https://www.cnblogs.com/b-dong/p/5759342.html

    展开全文
  • 直接上代码 复制上就可以使用 public static String downLoadFiles(List<... 作为参数传进来,就是把多个文件的流放到一个list里面 //创建一个临时压缩文件 //临时文件可以放在CDEF盘中,但不建

    直接上代码 复制上就可以使用

    
    public static String downLoadFiles(List<MultipartFile> files) throws Exception {
        try {
            //List<MultipartFile> 作为参数传进来,就是把多个文件的流放到一个list里面
            //创建一个临时压缩文件
            //临时文件可以放在CDEF盘中,但不建议这么做,因为需要先设置磁盘的访问权限,最好是放在服务器上,方法最后有删除临时文件的步骤
            String zipFilename = "D:/" + TimeTool.getTime("yyyyMMddHHmmss") + ".zip";
            File file = new File(zipFilename);
            if (!file.exists()) {
                file.createNewFile();
            }
            //创建文件输出流
            FileOutputStream fous = new FileOutputStream(zipFilename);
            ZipOutputStream zipOut = new ZipOutputStream(fous);
            for (int i = 0; i < files.size(); i++) {
                BufferedInputStream bins = new BufferedInputStream(files.get(i).getInputStream(), 8192);
                ZipEntry entry = new ZipEntry(files.get(i).getOriginalFilename());
                zipOut.putNextEntry(entry);
                // 向压缩文件中输出数据
                int nNumber;
                byte[] buffer = new byte[8192];
                while ((nNumber = bins.read(buffer)) != -1) {
                    zipOut.write(buffer, 0, nNumber);
                }
                // 关闭创建的流对象
                bins.close();
            }
            zipOut.close();
            fous.close();
            return zipFilename;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "下载失败";
    }
    
    
    展开全文
  • 主要为大家详细介绍了java实现从网络下载多个文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java多线程下载文件

    万次阅读 2017-08-03 10:03:08
    Java多线程下载文件优化:合理利用服务器资源...当有很多个文件需要下载的时候,调用某个方法,有个线程池,线程池大小假定是10,当有10个文件过来的时候,每个线程去下载一个文件即可 多线程如果只知道Thread和Runnab
  • 这里写自定义目录标题JAVA实现多个PDF文件压缩下载 JAVA实现多个PDF文件压缩下载 @RequestMapping(params = "batchExports") public void batchExportPDFs(HttpServletRequest req, HttpServletResponse resp) ...
  • java FTPClient下载多个文件

    千次阅读 2013-12-27 11:47:40
    最近有需求,要求从服务器端下载多个文件,并且下载的同时压缩,上网查了半天没有一个行的,最后还是想出下面的办法,仅供参考   /** * 压缩下载的文件夹 * @param namelist 下载的文件列表 * @param ...
  • 从网络下载多个文件 首先是打包下载多文件,即打成压缩包在下载。 其次 别处的资源:可以是别的服务器,可以是网上的资源,当然也可以是本地的(更简单) 最后:一次性下载,一次性下载多个文件 三步走: 一、...
  • java实现多个文件打包下载

    千次阅读 2017-09-29 11:36:56
    最近需要做一个多文件打包zip下载的需求,能力不足,完全无处下手,百度大法到了这方法,转载至此,以备后用。 亲测有效,直接把方法粘贴至项目就可以。 List 需要先做一些操作,可以另写一方法,判断手中的...
  • /** * 文件下载 * @param request * @param response * @param filePath 文件路径 * @param filename 下载文件名称 */ public static void downLoadFile(HttpServletRequest request,HttpServletResponse ...
  • 主要介绍了Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
  • //普通java文件下载方法,适用于所有框架 public String downloadFilesTest(HttpServletRequest request,HttpServletResponse res) throws IOException { //获取文件根目录,不同框架获取的方式不一样,可自由...
  • 现在需要对列表数据批量下载,将多个文件一起下载并存放到一起通过zip压缩包的形式下载到浏览器 2. 开发步骤 思路: 先将多个文件单独一个个下载存放在磁盘的某个位置,然后再将该文件数据进行压缩. 2.1 逐个下载并存放...
  • Java多文件下载

    2020-06-11 15:39:35
    java多文件下载 最近项目中需要一个多文件下载的功能,在网上搜索大部分实现方式都是打包下载,思路便是把要下载文件复制到一目录下,再压缩成一zip包,然后来下载zip包来实现多文件下载的功能,我本身也...
  • java多个文件压缩打包成zip下载

    万次阅读 2018-12-21 14:53:53
    java多个文件压缩打包成zip下载 如果实现批量操作一些文件,使之压缩打包成zip下载? 具体实现步骤如下: 设置下载文件名编码 创建zip输出流ZipOutputStream 将需要下载的文件流循环写入ZipOutputStream 关闭各个流...
  • java web 实现多个文件压缩下载

    千次阅读 2017-07-31 10:58:25
    文件下载时,我们可能需要一次下载多个文件。批量下载文件时,需要将多个文件打包为zip,然后再下载。实现思路有两种:一是将所有文件先打包压缩为一个文件,然后下载这个压缩包,二是一边压缩一边下载,将多个文件...
  • JavaJava实现zip压缩多个文件下载

    千次阅读 2017-04-10 10:20:50
    为了更好的演示,首先创建一个文件实体FileBean,包含了文件路径和文件名称: package com.javaweb.entity; import java.io.Serializable; /** * 文件实体类*/ public class FileBean implements ...
  • Java根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,包括子目录也可以打包,有个简单的导出html页面,点击导出按钮下载zip。
  • 我们在使用java下载时候,通常是通过路径获取二进制文件,再通过HttpServletResponse发送到前台,现在将张图片打包成zip格式进行下载。代码如下: ZipOutputStream zos = null; BufferedInputStream br = null; ...
  • Java一次性下载多个文件

    千次阅读 2019-09-12 15:46:08
    最近项目遇到一个需求,需要一次性导出全部数据-,而且是按照500条数据一个文件。 话不说,开始。 新增Excel工具类 可以直接复制 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util....
  • java多个文件压缩下载

    2015-04-13 15:04:00
    public static void zipFiles(File[] srcfile,ServletOutputStream sos){ byte[] buf=new byte[1024];... //ZipOutputStream类:完成文件或文件夹的压缩 ZipOutputStream out=new ZipOutputStre...
  • 最近写了批量导出文件的功能, 客户要求根据业务系统为条件分组导出系统附件 业务场景: 月度、季度、年度统计 条件: 根据不同的条件查出系统相关的附件,每系统的文件要单独放在一文件夹 根据系统分组 每...
  • 我现在只实现了下载单个文件,我给fileName用“*.csv”是下载它是无效报错,请问该怎么实现呢 package ftpdownload; import java.io.File; import java.io.FileNotFoundException; import java.io....
  • 该示例框架为Spring Boot,根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,有个简单的导出html页面,点击导出按钮下载zip 所需jar包commons-io service层 package ...
  • // 读入需要下载文件的内容,打包到zip文件 while ((len = fis.read(buffer)) > 0) { out.write(buffer, 0, len); } out.closeEntry(); fis.close(); } out.close(); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,497
精华内容 2,598
关键字:

java下载多个文件

java 订阅