文档章节

【java下载】

卯金刀GG
 卯金刀GG
发布于 2018/10/10 14:00
字数 224
阅读 4
收藏 0

1、提供在controller层,大家可以根据项目需要,抽取到service层。    

/**
     * 模板下载
     * @author liuy
     * @since 2018年10月10日 上午10:38:44
     * @param response
     * @throws IOException
     */
    @RequestMapping(value = "/___downloadTempletFiles",method=RequestMethod.GET)
    public void downloadTempletFiles(HttpServletResponse response) throws IOException{
        //方法一:直接下载路径下的文件模板
        FileInputStream input = null;
        OutputStream out = null;
        try {
            //获取要下载的模板名称
            String fileName = "template.zip";
            //获取文件的路径
            String filePath = getClass().getResource("/template/" + fileName).getPath();
            fileName = URLEncoder.encode(fileName, "UTF-8");
            //设置要下载的文件的名称
            response.reset();
            response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
            response.setContentType("application/octet-stream;charset=UTF-8");
            
            out = response.getOutputStream();
            input = new FileInputStream(filePath);

            byte[] b = new byte[2048];
            int i = 0;
            while ((i = input.read(b)) > 0) {
                out.write(b, 0, i);
            }
            out.flush();
            logger.info("##SRM####################read template.zip successful");
        } catch (Exception ex) {
            logger.error("getApplicationTemplate :", ex);
        } finally {
            if (input != null) {
                input.close();
                input = null;
            }
            if (out != null) {
                out.close();
                out = null;
            }
        }
    } 

 

© 著作权归作者所有

卯金刀GG
粉丝 26
博文 265
码字总数 72868
作品 0
昌平
程序员
私信 提问

暂无文章

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部