SpringMVC返回文件

news/2024/7/4 5:20:54

给前段返回文件工具

    public static ResponseEntity<FileSystemResource> export(File file) {
        if (file == null) {
            return null;
        }
        HttpHeaders headers = new HttpHeaders();
        headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
        headers.add("Content-Disposition", "attachment; filename=" + System.currentTimeMillis() + ".xls");
        headers.add("Pragma", "no-cache");
        headers.add("Expires", "0");
        headers.add("Last-Modified", new Date().toString());
        headers.add("ETag", String.valueOf(System.currentTimeMillis()));
        return ResponseEntity
                .ok()
                .headers(headers)
                .contentLength(file.length())
                .contentType(MediaType.parseMediaType("application/octet-stream"))
                .body(new FileSystemResource(file));
    }
    /**
     * 下载文件
     *
     * @param request  /
     * @param response /
     * @param file     /
     */
    public static void downloadFile(HttpServletRequest request, HttpServletResponse response, File file, boolean deleteOnExit) {
        response.setCharacterEncoding(request.getCharacterEncoding());
        response.setContentType("application/octet-stream");
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
            response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
            IOUtils.copy(fis, response.getOutputStream());
            response.flushBuffer();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                    if (deleteOnExit) {
                        file.deleteOnExit();
                    }
                } catch (IOException e) {
                    log.error(e.getMessage(), e);
                }
            }
        }
    }

http://www.niftyadmin.cn/n/4557467.html

相关文章

看点什么比较好 可没有资料可以学 C语言已经入门

自己去找题材来练 各种编程语言 先看能看的懂的 都是压枕头的好书啊 至于指针可以不学了 我学到指针哪时很难受有很多不明白 的然后又没有什么人问 很有感受 说实话我也是自己学这样的 还有可上网做一些题 你去买本叫易学易教哪本书上的东本都很容明白 多练.练多种. ||| 有的 我…

C语言中要来交换的语句

ba-b;//原来a的值为a和b和&#xff08;现在a的值&#xff09;减去b的值 aa-b;//原来b的值为a和b和&#xff08;现在a的值&#xff09;减去a&#xff08;也就是现在b的值&#xff09;的值 aab;//意思是a的值为a和b的和&#xff08;也就是现在a的值&#xff09; 然后将a的值赋给b…

jpa 联级对象 更新操作

切记制定关联操作 merge 一开始以为refresh就可以联级保存&#xff0c;后来发现merge是联级保存 OneToMany(cascade {CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE }, fetch FetchType.EAGER)JoinColumn(name "purchase_contract_id")private Li…

c.s中怎样调轻盈

你就可以飘起来了 选择重力 按H然后进入服务器设置 足以摔死几个人了LZ有兴趣可以试试 ||| cs1.6 沉重4种状态先失重后沉重 正常 轻盈 恩H健在服务器选项地心引力中选择有失重 然后选择失重

docker命令笔记

容器 启动容器 docker run ubuntu:15.10 /bin/echo "Hello world" docker&#xff1a;命令 run&#xff1a;启用镜像参数 ubuntu:15.10&#xff1a;镜像名称&#xff0c;并指定版本为15.10&#xff0c;ocker 首先从本地主机上查找镜像是否存在&#xff0c;如果不存在…

[JSOI2011]柠檬

https://www.zybuluo.com/ysner/note/1236327 题面 给定一段长度为\(n\)的序列\(a\)&#xff0c;需要把它分为任意多段。 对于每一段&#xff0c;需要选出一个数\(p\)&#xff0c;若\(p\)在该段中出现\(k\)次&#xff0c;则该段贡献为\(pk^2\)。 最大化贡献和。 \(n\leq10^6,x\…

异构数据库同步数据(mysql2sqlserver)

需要使用datax插件&#xff0c;是阿里开源插件&#xff0c;能够实现各种异构数据库的数据同步 github地址datax 找到下面的快速开始&#xff0c;点击Quick Start就可以下载插件 转载&#xff1a;详细介绍 如果想实现增量同步&#xff0c;就需要使用where和数据库中的时间字段…

参考文献引用网页怎么标注 ?

【格式】 [序号]主要责任者.电子文献题名.电子文献出处[电子文献及载体类型标识].或可获得地址&#xff0c;发表或更新日期/引用日期. 维基百科:引用维基百科 【举例】 [16] 王明亮.关于中国学术期刊标准化数据库系统工程的进展[EB/OL].http: //www.cajcd.edu.cn/pub/wml.txt/9…