精华内容
下载资源
问答
  • 不但需要多次交互,还需要把每个文件的文件名都输入进去,很不方便,所以进行了一个小扩展:即客户端可以将打算传送的多个文件都先放到一个文件夹目录下,然后通过代码实现将这一文件目录下的所有文件一次打包发送给...
  • 我们在使用java下载时候,通常是通过路径获取二进制文件,再通过HttpServletResponse发送到前台,现在将张图片打包成zip格式进行下载。代码如下: ZipOutputStream zos = null; BufferedInputStream br = null; ...

    我们在使用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"));
            br = 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下载多个文件打包成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
    在这里插入图片描述

    展开全文
  • 一、文件打包为zip public void zip(List<File> fileList,String zipFileName) { FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; ZipOutputStream ...

    一、文件打包为zip

    public void zip(List<File> fileList,String zipFileName) {
    		FileInputStream fileInputStream = null;
    		FileOutputStream fileOutputStream = null;
    		ZipOutputStream zipOutputStream = null;
    		BufferedInputStream bufferInputStream = null;
    		try {
    			// zipFileName为压缩文件的名称(xx.zip),首先在某个目录下(C:/temp/路径可以根据自己的需求进行修改)创建一个.zip结尾的文件
    			fileOutputStream = new FileOutputStream(new File("C:/temp/" + zipFileName));
    			zipOutputStream = new ZipOutputStream(new BufferedOutputStream(fileOutputStream));
    			// 创建读写缓冲区
    			byte[] bufs = new byte[1024 * 10];
    
    			for (File file : fileList) {
    				// 创建ZIP实体,并添加进压缩包
    				ZipEntry zipEntry = new ZipEntry(file.getName());
    				zipOutputStream.putNextEntry(zipEntry);
    
    				// 读取待压缩的文件并写进压缩包里
    				fileInputStream = new FileInputStream(file);
    				bufferInputStream = new BufferedInputStream(fileInputStream, 1024 * 10);
    				int read = 0;
    				while ((read = bufferInputStream.read(bufs, 0, 1024 * 10)) != -1) {
    					zipOutputStream.write(bufs, 0, read);
    				}
    			}
    
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (bufferInputStream != null) {
    					bufferInputStream.close();
    				}
    				if (zipOutputStream != null) {
    					zipOutputStream.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    
    		}
    	}
    

    二、下载zip包

    	public void downloadZip(HttpServletResponse response, String zipFileName) {
    		// zipName为上一步文件打包zip时传入的zipName
    		File zipFile = new File("C:/temp/" + zipFileName);
    		response.setContentType("APPLICATION/OCTET-STREAM");
    		response.setHeader("Content-Disposition", "attachment; filename=" + zipFileName);
    
    		FileInputStream fileInputStream = null;
    		OutputStream outputStream = null;
    		try {
    			outputStream = response.getOutputStream();
    			fileInputStream = new FileInputStream(zipFile);
    			byte[] bufs = new byte[1024 * 10];
    			int read = 0;
    			while ((read = fileInputStream.read(bufs, 0, 1024 * 10)) != -1) {
    				outputStream.write(bufs, 0, read);
    			}
    			fileInputStream.close();
    			outputStream.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally {
    			try {
    				// 删除压缩包
    				File file = new File("C:/temp/" + zipFileName);
    				file.delete();
                    
    				if (fileInputStream != null) {
    					fileInputStream.close();
    				}
    				if (outputStream != null) {
    					outputStream.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    

    三、下载接口

    	@GetMapping("/downloadZip")
    	@ApiOperation("下载zip")
    	public void downloadZip(HttpServletResponse response) {
    		downloadService.downloadZip(response);
    	}
    
    展开全文
  • vb.net线程文件同时下载.rar 对象数组和线程数组为文件同时下载提供了可能。 我们要的就是一个循环把所有的任务都分配到各个对象和线程中,剩下的就让CPU去完成吧!...一个文件下载占用一个线程,同时进行。
  • 只调用 精易模块 可以在论坛自行下载 支持所有文件合并打包 可直接在源代码调用 生成出来的库文件 有调用列子和模块代码, 我看论坛没有人写过,特意出来,适合新手老手学习的一小技巧
  • 使用PHP的ZipArchive类实现多个文件的zip压缩包打包下载
    <?php
    //新建一个ZipArchive的对象
    $zip = new ZipArchive();
    //设置.zip下载后的文件名
    $zname = time().'.zip';
    //开始操作.zip压缩包
    if($zip->open($zname, ZipArchive::CREATE)===TRUE){
    	//向.zip压缩包里添加文件
    	$result = $zip->addFile('aaa.doc');
    	$res = $zip->addFile('bbb.doc');
    	//文件添加完,关闭ZipArchive的对象
    	$zip->close();
    	//清空(擦除)缓冲区并关闭输出缓冲
    	ob_end_clean();
    	//下载建好的.zip压缩包
    	header("Content-Type: application/force-download");//告诉浏览器强制下载
    	header("Content-Transfer-Encoding: binary");//声明一个下载的文件
    	header('Content-Type: application/zip');//设置文件内容类型为zip
    	header('Content-Disposition: attachment; filename='.$zname);//声明文件名
    	header('Content-Length: '.filesize($zname));//声明文件大小
    	error_reporting(0);
    	//将欲下载的zip文件写入到输出缓冲
    	readfile($zname);
    	//将缓冲区的内容立即发送到浏览器,输出
    	flush();
    	exit;
    }
    
    

    展开全文
  • vue项目webpack根据路由打包多个html

    千次阅读 2019-01-04 02:45:06
    但是在实际开发中,当项目足够庞大时(一级路由几十,二级路由上百),我们仅仅改一小的BUG,比如说改了某个地方的一按钮边框颜色,但是要到线上的时候就需要打包整个项目,这样就会造成开发2分钟,打包半...
  • 上一篇文章讲解了如何生成excel文件,name这一章我们来谈谈如何将多个excel文件打包成压缩包的形式 首先看一下主函数: public static void main(String[] args) throws IOException { try { File file1 = ...
  • 第二种:可以给本文点赞、好评,然后邮件到792166417@qq.com,如果有学习资料视频可以分享的话,可以捎带分享给我。 using ICSharpCode.SharpZipLib.Checksum; using ICSharpCode.SharpZipLib.Zi...
  • iOS如何实现多个环境一次打包

    千次阅读 2017-07-17 10:26:34
    概述偶然看到一个很有趣的问题:如何在ios环境下实现多个环境同时打包。谈到多环境,我想大多公司都至少有2-3个环境,比如Test环境,UAT(User Acceptance Test)用户验收测试环境,Release环境等等。当需要开发打多个...
  • 1000行的代码,打包后的apk文件只有3-5M,还没有广告 免责声明 本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码...
  • 前端html实现多文件打包并下载

    千次阅读 2020-04-19 18:37:42
    前端html实现多文件打包并下载 最近公司有这样的需求,上网百度一下后,还是找到了方法 用到的插件axios,FileSaver,jszip axios不用解释了,请求的插件,重点是后面两 1.FileSaver 这是一用来保存各种媒体文件的...
  • 在项目中经常会需要将一些接口的配合文件或者某些样式文件,分离出来单独打包,便于后期改动,这里我以css文件为例,介绍实现两种方法: 项目目录: 如上图所示,现在我需要将项目中的scBtn.css文件单...
  • //获取用户信息和用户订单 Observable.zip( API.userInfo(Id: UId), API.getOrders(tId: UId) ).subscribe(onNext: { (userInfo, userOrders) in print("获取信息成功: \(userInfo)") print("获取订单成功...
  • 如何将打包好的文件做成一APP

    千次阅读 2019-03-27 16:12:00
    本文主要是用来简短的对做成一APP进行说明,内容可能不是...2.如果安装好了,自己写的项目也已经打包好了....,可以直接在本地打开打包好的文件试试,如直接按开index.html.(的不阐述,反正就是万事俱备),...
  • .NetCore下多个文件流生成压缩文件

    千次阅读 2020-05-30 11:08:29
    文件打包下载之前的做法是,后台将文件服务器上的多个文件打包到一个压缩文件中,存放在服务器,后端接口返回压缩文件地址供前端下载;为此,特写下这篇文章来记录此处是如何根据文件流来制作压缩包的。 AWS S3更多...
  • 本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合vue.js 就不需要webpakc这种构建工具了,可以直接在页面内使用,下面以 ‘yyl-npm-practice’ 这包为例 第一步:使用 ...
  • ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName)); for(int i=0;i&lt;fileList.size();i++){ String filename = (String)fileList.get(i); F...
  • JavaWeb多文件上传及zip打包下载

    万次阅读 2017-08-15 17:15:18
    本篇文章总结场景在JavaWeb环境下,多文件上传及批量打包下载功能,包括前台及后台部分。 首先明确一点: 无法通过页面的无刷新ajax请求,直接下载、上传请求。上传和下载,均需要在整页请求的基础上实现。项目...
  • 大家好,我是被白菜拱的猪。 ...于是干脆直接给他像软件一样可以点开的.exe文件。 于是网上搜啊搜,然后具体操作了一番,成功了,下面罗列一下步骤。这里是使用pyinstaller打包的 具体步骤 1
  • Idea SpringBoot模块项目打包血泪史

    千次阅读 2019-05-02 17:58:32
    本文主要介绍基于Idea的SpringBoot模块打包中遇到的各种问题以及解决方法 基本概况介绍: 小弟之前是用的myeclipse进行的开发,但是在建立模块的时候却错误的使用了web archtype,然后强转的SpringBoot,在...
  • 欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 很久之前做Unity跟安卓交互的时候就出现过这问题,当时也是各种尝试虽然最后...基本上都是因为在手动合并清单文件AndroidManifest的时候出错的。 ...
  • python文件打包成.exe文件有两种方式 参考: pyinstaller打包 Nuitka打包 环境 环境 描述 OS Windows10 64位 python 3.7 pycharm 2019 安装pyinstaller ...打包 ...#打包方式 ...# 1)结果多个文件 pyins
  • 要求:后台只编写下载单个文件的接口,批量下载让前端遍历发送下载请求(这个批量下载的前提要求是:一个文件个文件的下载,不能打包): 下载demo: 前端代码:定义一个下载函数: function downloadFile(url){ /...
  • 但是这多个项目需要分别部署在不同服务器上,所以需要我们针对每个项目(即每个页面)进行单独打包。 二、单独打包某个页面: 这里我们以单独打包vue多页面应用中的其中一个页面(detail.html)为示例进行说明。 1)...
  • 通过上一篇gradle渠道打包的介绍后,本篇我们就来介绍一下版本apk的打包。在项目的开发过程,有可能我们会有需要打包多种版本apk的需求,比如当测试部门在测试需要我们提供两种当前正在开发的apk的版本,而且这...
  • Java 将jar文件打包成exe执行文件

    千次阅读 2019-09-22 08:44:31
    由于平时运行jar文件需要在命令行打开感觉比较麻烦所以我们可以把jar打包成exe执行文件 工具: exe4j (官网下载链接:https://exe4j.apponic.com/) jre:(下载jdk的时候有jre) 因为打包后的exe发给了一没有配置...
  • 1、题目已经说的很清楚了,主要就是eclipse打包项目嘛,直接上图吧 首先找到你的整个工程,点击右键,找到一export(导出)的选项,点击,最后弹出一窗口 2、点击Java,并选中JAR File选项,进入下一步 3、此时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,627
精华内容 61,450
关键字:

怎样打包发送多个文件