Springboot实现文件下载的方式

这篇具有很好参考价值的文章主要介绍了Springboot实现文件下载的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式一:返回的数据写入响应流以文件方式下载

		StringBuilder content = new StringBuilder();
        OutputStream outputStream = null;
        try {
            response.setHeader("Content-Disposition", "attachment;filename=" + logId + ".log");
            response.setHeader("Content-Type", "application/octet-stream");
            response.setContentType("application/octet-stream; charset=UTF-8");
            outputStream = response.getOutputStream();
            outputStream.write(content.toString().getBytes());
            outputStream.flush();
        } catch (Exception e) {
            // ignored
        } finally {
            if (outputStream != null) {
                try {
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

方式二:某个位置的文件下载

        InputStream inputStream = null;
        OutputStream outputStream = null;
        HttpServletResponse response = HttpServletUtil.getResponse();
        try{
            response.setHeader("Content-Disposition", "attachment;filename=" + logId + ".log");
            response.setHeader("Content-Type", "application/octet-stream");
            response.setContentType("application/octet-stream; charset=UTF-8");
            inputStream = Files.newInputStream(new File("文件路径").toPath());
            outputStream = response.getOutputStream();
            byte[] b = new byte[1024];
            int len;
            //从输入流中读取一定数量的字节,并将其存储在缓冲区字节数组中,读到末尾返回-1
            while ((len = inputStream.read(b)) > 0) {
                outputStream.write(b, 0, len);
            }

        }catch(Exception e){
            // ignored
        }finally {
            try{
                if (inputStream != null) inputStream.close();
                if (outputStream != null) outputStream.close();
            }catch(Exception e){
                // ignored
            }
        }

===>工具类

package com.wisesoft.common.util;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * ClassName: com.wisesoft.xodb.common.util.HttpServletUtil
 * Name:HttpServletUtil
 * Author: xiong-feng
 * Date: 2021/12/9 8:54
 * Description: 获取http信息
 */
public class HttpServletUtil {



    /**
    * Description:  获取request请求域
    * Author: xiong-feng
    * Date: 2021/12/9
    */
    public static HttpServletRequest getRequest(){
        return ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
    }

    /**
    * Description:  获取response响应域
    * Author: xiong-feng
    * Date: 2021/12/9
    */
    public static HttpServletResponse getResponse(){
        return ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getResponse();
    }

}

文章来源地址https://www.toymoban.com/news/detail-856152.html

到了这里,关于Springboot实现文件下载的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合Minio实现文件上传、下载

    SpringBoot整合Minio实现文件上传、下载: 1,介绍高性能分布式存储文件服务Minio:Minio是 基于Go语言编写的对象存储服务 , 适合于存储大容量非结构化的数据 ,例如 图片、音频、视频、日志文件、备份数据和容器/虚拟机镜像等 ,而一个对象文件可以是任意大小,从几kb到最

    2024年02月06日
    浏览(35)
  • SpringBoot整合Hutool实现文件上传下载

    我相信我们在日常开发中,难免会遇到对各种媒体文件的操作,由于业务需求的不同对文件操作的代码实现也大不相同 maven配置 文件类 文件接口  配置静态资源映射

    2024年02月02日
    浏览(47)
  • SpringBoot+MinIO 实现文件上传、读取、下载、删除

    一、 MinIO 二、 MinIO安装和启动 三、 pom.xml 四、 applicatin.properties(配置文件) 五、 编写Java业务类

    2024年02月09日
    浏览(29)
  • springboot+微信小程序实现文件上传下载(预览)pdf文件

    实现思路: 选择文件 wx.chooseMessageFile ,官方文档: https://developers.weixin.qq.com/miniprogram/d e v/api/media/image/wx.chooseMessageFile.html 上传文件 `wx,uploadFile` , 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html 查看所有上传的pdf文件,显示在页面上 点击pdf文件

    2024年02月08日
    浏览(45)
  • springboot 使用ExcelUtil实现文件导入、导出、模板下载

    1.1、使用Swagger 注解,表示该接口方法用于 Excel 模板下载操作 1.2、定义接口方法,接受一个 HttpServletResponse 对象作为参数,用于响应生成的 Excel 文件 1.3、创建了一个 ExcelUtil 对象,并指定了数据模型类,(ExcelUtil 是一个自定义的工具类,用于处理 Excel 文件的导入和导出操作

    2024年02月09日
    浏览(33)
  • SpringBoot+Vue+Element-ui实现文件下载

    目录 1.后端代码部分 2.前端代码部分 3.效果展示 1.后端代码部分 2.前端代码部分 注意这里为了方便,省去了用axios作请求,而用href直接跳转,相当于一次请求访问 3.效果展示    下载成功

    2024年02月12日
    浏览(31)
  • Springboot + MySQL + html 实现文件的上传、存储、下载、删除

    实现步骤及效果呈现如下: 1.创建数据库表: 表名:file_test 存储后的数据: 2.创建数据库表对应映射的实体类: import com.baomidou.mybatisplus.annotation.IdType ; import com.baomidou.mybatisplus.annotation. TableField ; import com.baomidou.mybatisplus.annotation. TableId ; import com.baomidou.mybatisplus.annotation. Tab

    2024年04月29日
    浏览(30)
  • SpringBoot实现文件上传和下载笔记分享(提供Gitee源码)

    前言:这边汇总了一下目前SpringBoot项目当中常见文件上传和下载的功能,一共三种常见的下载方式和一种上传方式,特此做一个笔记分享。 目录 一、pom依赖 二、yml配置文件 三、文件下载

    2024年02月11日
    浏览(30)
  • 一张图带你学会入门级别的SpringBoot实现文件上传、下载功能

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:SpringBoot实战 标题 一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码) 一张思维导图带你学会Springboot创

    2024年02月12日
    浏览(63)
  • 基于SpringBoot实现文件上传和下载(详细讲解And附完整代码)

    目录 一、基于SpringBoot实现文件上传和下载基于理论 二、详细操作步骤 文件上传步骤: 文件下载步骤: 三、前后端交互原理解释  四、小结  博主介绍:✌专注于前后端领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯

    2024年04月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包