行业资讯 2025年08月6日
0 收藏 0 点赞 850 浏览 1284 个字
摘要 :

有时候我们会将一些静态模板文件,比如一些导入excel的模版放在resource目录下,那么我们springboot该如何实现resource目录下的文件下载功能呢? 这里我们现将一个名为xx……

有时候我们会将一些静态模板文件,比如一些导入excel的模版放在resource目录下,那么我们springboot如何实现resource目录下的文件下载功能呢?

这里我们现将一个名为xxx模板.xls的文件放在resource目录的下的template文件夹下,接下来我们写如下代码即可实现下下载功能:

@GetMapping(\"/download/template\")
    public void downloadTemplate(HttpServletRequest request, HttpServletResponse response){
        String fileName = request.getParameter(\"fileName\");
        InputStream is = null;
        OutputStream os = null;
        try {
            is = this.getClass().getClassLoader().getResourceAsStream(\"template\"+ File.separator+fileName);
            os = response.getOutputStream();
            byte[] bytes = StreamUtils.copyToByteArray(is);
            response.reset();
            //下面这两行是为了解决跨域,如果没有跨域这两行可以删除
            response.addHeader(\"Access-Control-Allow-Origin\", \"*\");
            response.addHeader(\"Access-Control-Allow-Methods\", \"GET, POST, PUT, DELETE\");
            response.setContentType(\"application/octet-stream;charset=utf-8\");
            response.addHeader(\"Content-Disposition\", \"attachment;filename=\" + new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
            response.addHeader(\"Content-Length\", \"\" + bytes.length);
            os.write(bytes);
            os.flush();
        }catch (Exception e) {
            log.error(\"下载出错\", e);
        }finally {
            try {
                if(os != null) {
                    os.close();
                }
                if (is != null) {
                    is.close();
                }
            }catch (Exception e) {
                log.error(\"关闭流出错\", e);
            }
        }
    }

接下来我们只需要发送类似:localhost:8080/api/download/template?fileName=xxx模板.xls的get请求就可以触发该下载方法,从而现在springboot如何下载resource目录下的文件的下载了。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/8768.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号