java文件批量下载打包成zip

该博客介绍了一个Java实现的方法,用于批量下载多个文件并将其压缩成ZIP。通过前端传入的文件ID字符串,后端解析并获取文件路径,然后使用ZipOutputStream将文件打包,设置HTTP响应头以供浏览器下载。此过程适用于处理用户选择多个文件进行下载的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先html页面获取当前需要下载文件的id集合将转成字符串形式传递到后台。
。。。。。。。。。。。。。。。。
2 、下面就是获取字符串之后的批量下载

/**
     * 多文件批量下载压缩成zip
     *
     *rootPath
     *
     * */
    @RequiresPermissions(value = "/file/download")
    @RequestMapping(value = "/file/downFiles", method = RequestMethod.GET)
    public ModelAndView downFilesPost(HttpServletRequest request, HttpServletResponse response) {

        // 选中文件ID拼接的字符串
       // String idxs ="8abc83566c17147a016c177d9d100000,8abc83566c03a4d3016c03b388510004,8abc83566c03a4d3016c03b0ba170003";
        String idxs=request.getParameter("ids");
        List<String> downLoadPaths = new ArrayList<String>();//存储选中文件的下载地址
        OutputStream res = null;
        ZipOutputStream zos = null;
        String outPath;
        String lessionIdStr;
        String fileName; //浏览器下载弹出框中显示的文件名

        downLoadPaths.clear();
        String firstFileName = "";// 第一个文件的文件名
        List<mtrbTrainFileModel> fileVos = new LinkedList<mtrbTrainFileModel>();
        if (StringUtils.isNotEmpty(idxs)) {
            int end = idxs.lastIndexOf(",");
            if (end > 0) {
                if (end == idxs.length() - 1) {
                    idxs = idxs.substring(0, end);
                }
                String[] ids = idxs.split(",");
                for (int i = 0; i < ids.length; i++) {
                    mtrbTrainFileModel mtrbmodel = trainFileService.get(mtrbTrainFileModel.class, (ids[i]));
                    fileVos.add(mtrbmodel);
                    //拼接url
                    String url = rootPath + mtrbmodel.getFileUrl();
                    downLoadPaths.add(url);

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值