文档章节

java web 图片下载自动打包

vnilk
 vnilk
发布于 2017/02/04 10:14
字数 217
阅读 17
收藏 0


/**
 * Description: <br/>
 * Date: 2017年1月10日 上午10:40:36 <br/>
 * 
 * @version
 * @see
 */

@Controller
@RequestMapping("/admin/download")
public class DownloadImagesController {

    /**
     * 
     * Description: 下载压缩包<br/>
     *

     * @param imgs
     * @param memberName
     * @param response
     * @throws Exception
     */
    @RequestMapping(value = "/downLoadZipFile")
    public void downLoadZipFile(@RequestParam("imgs") String imgs, @RequestParam("memberName") String memberName,
            HttpServletResponse response) throws Exception {
        String[] img = imgs.split(",");
        // 定义根路径
        String rootPath = PlatformConstants.IMG_DISK_PATH;

        String zipName = memberName + ".zip";
        response.setContentType("APPLICATION/OCTET-STREAM");
        response.setHeader("Content-Disposition", "attachment; filename=" + zipName);
        ZipOutputStream out = new ZipOutputStream(response.getOutputStream());
        try {
            for (int i = 0; i < img.length; i++) {

                ImagesDownloadUtil.zipFile(rootPath + "/" + img[i], out);
                response.flushBuffer();
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            out.flush();
            out.close();
        }
    }

}







/**
 * Description: <br/>
 * Date: 2017年1月10日 上午10:44:07 <br/>
 * 
 * @author vnilk
 * @version
 * @see
 */
public class ImagesDownloadUtil {

    /**
     * 
     * Description: 压缩工具类<br/>
     *
     * @author vnilk
     * @param fileName
     * @param out
     * @throws Exception
     */
    public static void zipFile(String fileName, ZipOutputStream out) throws Exception {
        File file = new File(fileName);
        if (file.exists()) {
            byte[] buffer = new byte[1024];
            FileInputStream fis = new FileInputStream(file);
            out.putNextEntry(new ZipEntry(file.getName()));
            int len = 0;
            // 读入需要下载的文件的内容,打包到zip文件
            while ((len = fis.read(buffer)) > 0) {
                out.write(buffer, 0, len);
            }
            out.flush();
            out.closeEntry();
            fis.close();
        }
    }
}

 

© 著作权归作者所有

vnilk
粉丝 0
博文 2
码字总数 217
作品 0
武汉
程序员
私信 提问
IDEA配置artifacts中Web Application:Exploded和Web Application:Archive的区别

概念介绍 首先,artifacts是maven中的一个概念,表示项目/modules如何打包,比如jar,war,war exploded,ear等打包形式,一个项目或者说module有了artifacts就可以部署到web应用服务器上了(注...

豫华商
07/17
357
0
使用maven创建java项目

在本教程中,我们将向你展示如何使用 Maven 来创建一个 Java 项目,导入其到Eclipse IDE,并打包 Java 项目到一个 JAR 文件。 所需要的工具: Maven 3.3.3 Eclipse 4.2 JDK 8 注意:请确保 ...

神棍先生
2018/12/29
0
0
Jenkins+Maven+Svn实现代码自动打包与发布

前言 可能很多小伙伴们都知道,在一般互联企业初期大多数都是采用手工打包上传与发布的方式进行代码发布,常见就是利用打包工具手工打包,上传到WEB服务器,备份原代码文件,发布新的代码,重...

菜鸟东哥
2018/07/02
0
0
IntelliJ IDEA 使用手册

(本来发布在CSDN,但是CSDN博客时不时会报错,改了半天保存不了。) 有些图片较大,显示不清晰,点击图片,可以放大。或者在图片上右击,选择“新标签页打开”。 内容 激活、首次设置 创建m...

datadev_sh
2018/11/15
236
0
玩转阿里云函数计算(一)----Java Http 触发器极速迁移传统 Spring 应用

前言 阿里云函数计算 Function Compute(FC),旨在帮助用户采用弹性伸缩、动态分配资源的方式,来执行业务函数。让用户无需购买部署服务器,无需考虑业务负载,就能快速搭建可处理高并发的后台...

santihyt
05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

视频如何加水印?

很多视频制作者的视频都被他人盗用过,为了防止自己的劳动成果被他人窃取,给视频加水印对于视频制作者来说,是一件非常重要的事情。那么下面分享一个手机给视频加水印的方法,一起来看看吧!...

白米稀饭2019
21分钟前
3
0
004-Envelop-基于Blockstack的文件传输dapp

本篇文章主要介绍基于Blockstack的文件传输工具; ####A-链接地址 官网地址:https://envelop.app/ Github地址:https://github.com/envelop-app ####B-特性: 1: Share private files easil...

Riverzhou
23分钟前
5
0
SpringCloud——声明式调用Feign

Feign声明式调用 一、Feign简介 使用Ribbon和RestTemplate消费服务的时候,有一个最麻烦的点在于,每次都要拼接URL,组织参数,所以有了Feign声明式调用,Feign的首要目标是将Java HTTP客户端...

devils_os
29分钟前
5
0
《JAVA核心知识》学习笔记 (22. 数据结构)

22.1.1. 栈(stack) 栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶 (top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈...

Shingfi
35分钟前
5
0
你对AJAX认知有多少(1)?

AJAX(一) AJAX技术对于前段或者后端工程师来说,都是必不可缺的 那我们这几期都来细细品味一下AJAX的相关知识,直接上干货喽~ 1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识) 什么...

理性思考
42分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部