返回顶部
首页 > 资讯 > 后端开发 > JAVA >springboot如何实现文件下载呢?
  • 627
分享到

springboot如何实现文件下载呢?

springboot 2023-09-07 08:09:37 627人浏览 独家记忆
摘要

转自: springboot如何实现文件下载呢? 下文笔者讲述SpringBoot实现文件下载的方法分享,如下所示: 文件存储在服务器指定位置 import java.io.*;import java.net.URLEncoder;impo

转自:

springboot如何实现文件下载呢?

下文笔者讲述SpringBoot实现文件下载的方法分享,如下所示:

文件存储在服务器指定位置

import java.io.*;import java.net.URLEncoder;import java.util.*;import com.alibaba.excel.ExcelWriter;import com.alibaba.excel.metadata.Sheet;import com.alibaba.excel.support.ExcelTypeEnum;import org.springframework.Http.MediaType;import org.springframework.WEB.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.httpservletResponse;@RestControllerpublic class Controller {     @GetMapping(value = "/downloadFile", consumes = MediaType.ALL_VALUE)    void downloadFile(final HttpServletResponse response)            throws Exception {         // 获取文件        File file = new File("D:\java265.txt");        //文件名        String fileName = file.getName();         // 清空缓冲区,状态码和响应头(headers)        response.reset();        // 设置ContentType,响应内容为二进制数据流,编码为utf-8,此处设定的编码是文件内容的编码        response.setContentType("application/octet-stream;charset=utf-8");        // 以(Content-Disposition: attachment; filename="filename.jpg")格式设定默认文件名,设定utf编码,此处的编码是文件名的编码,使能正确显示中文文件名        response.setHeader("Content-Disposition", "attachment;fileName="+ fileName +";filename*=utf-8''"+URLEncoder.encode(fileName,"utf-8"));         // 实现文件下载        byte[] buffer = new byte[1024];        FileInputStream fis = null;        BufferedInputStream bis = null;        try {            fis = new FileInputStream(file);            bis = new BufferedInputStream(fis);            // 获取字节流            OutputStream os = response.getOutputStream();            int i = bis.read(buffer);            while (i != -1) {                os.write(buffer, 0, i);                i = bis.read(buffer);            }            System.out.println("Download successfully!");        }        catch (Exception e) {            System.out.println("Download failed!");        }        finally {            if (bis != null) {                try {                    bis.close();                } catch (IOException e) {                    e.printStackTrace();                }            }            if (fis != null) {                try {                    fis.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }}

创建文件数据并下载

import java.io.*;import java.net.URLEncoder;import java.util.*;import java.util.List; import com.alibaba.excel.EasyExcel;import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.support.ExcelTypeEnum;import com.alibaba.excel.write.metadata.WriteSheet;import org.springframework.http.MediaType;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;@RestControllerpublic class Controller {     @GetMapping(value = "/downloadExcel", consumes = MediaType.ALL_VALUE)    void downloadExcel(final HttpServletResponse response)            throws Exception {        String name = "测试." + ExcelTypeEnum.XLSX;        // 清空缓冲区,状态码和响应头(headers)        response.reset();        // 设置ContentType,响应内容为文本数据,编码为utf-8,此处设定的编码是文件内容的编码        response.setContentType("text/plain;charset=utf-8");        // 以(Content-Disposition: attachment; filename="filename.jpg")格式设定默认文件名,设定utf编码,此处的编码是文件名的编码,使能正确显示中文文件名        response.setHeader("Content-Disposition", "attachment;fileName=" + name + ";filename*=utf-8''" + URLEncoder.encode(name, "utf-8"));         // 响应输出流        OutputStream out = response.getOutputStream();        // 建立excel        ExcelWriter excelWriter = EasyExcel.write(out).build();        // 建立sheet        WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").build();        // 指定sheet并写数据        excelWriter.write(getListString(), writeSheet);        // 不要忘记        excelWriter.finish();        out.flush();    }     // 生成excel内容    List> getListString() {        List> result = new LinkedList<>();        List data1 = new LinkedList<>();        data1.add("1");data1.add("maomao");data1.add("java265");        result.add(data1);        List data2 = new LinkedList<>();        data1.add("2");data1.add("maomao-2");data1.add("java265-3");        result.add(data2);        List data3 = new LinkedList<>();        data1.add("3");data1.add("maomao-3");data1.add("java265-4");        result.add(data3);        return result;    }}

来源地址:https://blog.csdn.net/qq_25073223/article/details/127917013

--结束END--

本文标题: springboot如何实现文件下载呢?

本文链接: https://lsjlt.com/news/397881.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • springboot如何实现文件下载呢?
    转自: springboot如何实现文件下载呢? 下文笔者讲述SpringBoot实现文件下载的方法分享,如下所示: 文件存储在服务器指定位置 import java.io.*;import java.net.URLEncoder;impo...
    99+
    2023-09-07
    spring boot
  • SpringBoot如何实现文件下载功能
    这篇文章主要介绍“SpringBoot如何实现文件下载功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何实现文件下载功能”文章能帮助大家解决问题。1. 将文件以流的形式一次性...
    99+
    2023-07-05
  • SpringBoot如何实现上传和下载文件
    这篇文章主要介绍SpringBoot如何实现上传和下载文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!技术概述我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我...
    99+
    2023-06-20
  • SpringBoot如何实现文件上传与下载功能
    今天小编给大家分享一下SpringBoot如何实现文件上传与下载功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sprin...
    99+
    2023-07-02
  • Ajax如何实现文件下载
    小编给大家分享一下Ajax如何实现文件下载,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JQuery的ajax函数的返回类型只有xml、text、json、htm...
    99+
    2023-06-08
  • 如何实现SpringBoot加载配置文件
    这篇文章主要为大家展示了“如何实现SpringBoot加载配置文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现SpringBoot加载配置文件”这篇文章吧。一、简介在实际的项目开发过程...
    99+
    2023-06-29
  • js如何实现文件流式下载文件
    在JavaScript中,可以使用Blob对象和URL.createObjectURL()方法来实现文件的流式下载。具体步骤如下:1...
    99+
    2023-08-09
    js
  • SpringBoot如何集成SFTP客户端实现文件上传下载
    这篇文章主要介绍“SpringBoot如何集成SFTP客户端实现文件上传下载”,在日常操作中,相信很多人在SpringBoot如何集成SFTP客户端实现文件上传下载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-06
  • HTML5如何实现文件上传下载
    这篇文章主要介绍了HTML5如何实现文件上传下载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言HTML5 中提供的文件API在前端中有着...
    99+
    2024-04-02
  • Django 如何实现文件上传下载
    目录1. 前言 2. 实战一下 2-1  进入虚拟环境,创建一个项目及 App2-2  创建模板目录并配置 settings.py2-3  创...
    99+
    2024-04-02
  • Html5页面如何实现下载文件
    这篇文章将为大家详细讲解有关Html5页面如何实现下载文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求描述接到的原始需求是这样的,有一个H5页面,页面中有个“点击下载”的按钮,点击之后,完成下载特定...
    99+
    2023-06-09
  • Django如何实现文件上传下载
    小编给大家分享一下Django如何实现文件上传下载,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 前言文件上传、下载作为基础功能,在 Web 项目中非常普遍,...
    99+
    2023-06-14
  • 如何通过vbscript实现文件下载
    这篇文章主要介绍了如何通过vbscript实现文件下载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、VBS下载者:代码如下:Set Post = CreateObject...
    99+
    2023-06-08
  • php如何实现保存下载文件
    这篇文章主要介绍“php如何实现保存下载文件”,在日常操作中,相信很多人在php如何实现保存下载文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何实现保存下载文件”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • SpringMVC如何实现文件上传下载
    本篇内容主要讲解“SpringMVC如何实现文件上传下载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringMVC如何实现文件上传下载”吧!一、通用配置pom.xml  ...
    99+
    2023-06-22
  • DownloadManager如何实现文件下载功能
    这篇文章主要介绍了DownloadManager如何实现文件下载功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言    关于文件下载,或许...
    99+
    2023-05-30
  • SpringBoot下载文件的实现及速度对比
    目录前言文件来源文件下载1、OutputStream形式2、ResponseEntity形式两种方式下载速度比较后话前言 承上篇上传文件之后,本文就主要介绍下SpringBoot下下...
    99+
    2024-04-02
  • SpringBoot实现文件上传下载功能小结
    最近做的一个项目涉及到文件上传与下载。前端上传采用百度webUploader插件。有关该插件的使用方法还在研究中,日后整理再记录。本文主要介绍SpringBoot后台对文件上传与下载的处理。单文件上传// 单文件上传@RequestMapp...
    99+
    2023-05-31
    spring boot 文件上传
  • 【SpringBoot+MyBatisPlus】文件上传与文件下载的应用与实现
    文章目录 前言一.文件上传二.改进三.文件下载四.上传图片/回显图片 前言 一次“上传文件”的点击蕴含着一轮请求,我们要做的就是针对每一次的请求进行i/o处理,并返回给前端用户 一.文...
    99+
    2023-09-08
    spring boot java mybatis
  • Ajax如何实现生成流文件下载
    这篇文章主要介绍Ajax如何实现生成流文件下载,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:// 绑定导出按钮     $...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作