public ResponseEntity downloadFile() { Resource resource = new FileSystemResource("path/to/file.txt"); HttpHeaders headers = new HttpHeaders(); headers."> public ResponseEntity downloadFile() { Resource resource = new FileSystemResource("path/to/file.txt"); HttpHeaders headers = new HttpHeaders(); headers.">
117.info
人生若只如初见

spring实现文件下载的方法是什么

在Spring中实现文件下载可以使用以下方法:

  1. 使用 ResponseEntity 返回文件流:
@GetMapping("/downloadFile")
public ResponseEntity downloadFile() {
    Resource resource = new FileSystemResource("path/to/file.txt");
    
    HttpHeaders headers = new HttpHeaders();
    headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");
    
    return ResponseEntity
            .ok()
            .headers(headers)
            .contentLength(resource.contentLength())
            .contentType(MediaType.APPLICATION_OCTET_STREAM)
            .body(resource);
}
  1. 使用 HttpServletResponse 输出文件流:
@GetMapping("/downloadFile")
public void downloadFile(HttpServletResponse response) {
    File file = new File("path/to/file.txt");
    
    response.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString());
    response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=file.txt");
    response.setContentLength((int) file.length());
    
    try (
        InputStream inputStream = new FileInputStream(file);
        OutputStream outputStream = response.getOutputStream();
    ) {
        IOUtils.copy(inputStream, outputStream);
        outputStream.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

这两种方法都可以实现文件下载,第一种方法使用 ResponseEntity 返回文件资源,第二种方法直接使用 HttpServletResponse 输出文件流。您可以根据自己的需求选择其中一种方法来实现文件下载。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe75eAzsIBANUAFA.html

推荐文章

  • spring多线程调用的方法有哪些

    spring多线程调用的方法有以下几种: 使用@Async注解:在Spring中,可以使用@Async注解来标记一个方法为异步执行。当调用被@Async注解标记的方法时,Spring会在后...

  • Spring如何实现依赖注入

    Spring框架实现依赖注入的方式有两种: 构造器注入:通过构造器注入,Spring容器会在实例化bean的时候通过构造器向bean注入依赖。开发者需要在bean的构造器上使用...

  • Spring中注解Service有什么作用

    在Spring中,使用@Service注解可以将一个类标识为一个服务类(Service),可以使Spring自动扫描并将其实例化为一个Bean。@Service注解通常用于标识业务逻辑层的类...

  • spring框架的工作原理是什么

    Spring框架是一个开源的Java平台,主要用于简化企业级应用程序的开发。它提供了大量的功能和特性,包括控制反转(IoC)、依赖注入(DI)、面向切面编程(AOP)等...

  • 怎么使用java方法重载求圆的面积

    要使用Java方法重载来求圆的面积,首先需要定义一个方法来计算圆的面积。然后可以重载这个方法,根据不同的参数类型来计算不同的圆的面积。
    下面是一个示例...

  • java创建一个类的方法是什么

    在Java中创建一个类的方法是使用关键字 class 后面跟着类名来声明一个类。例如:
    public class MyClass { // 类的成员变量和方法在这里定义
    } 在这个例...

  • java创建一个类无效的原因有哪些

    类名与文件名不一致:在Java中,类名必须与文件名完全一致,否则会导致编译错误。 缺少public关键字:如果类声明为public,则类名必须与文件名完全一致。如果省略...

  • sql怎么获取某列的最大三个值

    要获取某列的最大三个值,可以使用以下SQL查询语句:
    SELECT column_name
    FROM table_name
    ORDER BY column_name DESC
    LIMIT 3; 其中,colu...