【java下载】

2019-07-25 14:52:54 浏览数 (1)

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

代码语言:javascript复制
/**
     * 模板下载
     * @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;
            }
        }
    } 

0 人点赞