117.info
人生若只如初见

SpringBoot中怎么实现文件上传和下载功能

在SpringBoot中实现文件上传和下载功能,通常需要借助Spring的MultipartFile对象来处理文件上传,同时使用OutputStream对象来处理文件下载。以下是一个简单的示例代码:

  1. 文件上传:
@RestController
public class FileController {

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) {
        try {
            // 获取文件名
            String fileName = file.getOriginalFilename();
            // 文件保存路径
            String filePath = "C:/upload/";
            // 文件保存操作
            file.transferTo(new File(filePath + fileName));
            return "File uploaded successfully!";
        } catch (IOException e) {
            e.printStackTrace();
            return "Failed to upload file.";
        }
    }

}
  1. 文件下载:
@RestController
public class FileController {

    @GetMapping("/download")
    public ResponseEntity downloadFile(@RequestParam String fileName) {
        // 文件路径
        String filePath = "C:/upload/";
        // 获取文件对象
        Resource file = new FileSystemResource(filePath + fileName);
        
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName);
        
        return ResponseEntity.ok()
                .headers(headers)
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(file);
    }

}

在以上代码示例中,文件上传时,通过@RequestParam注解获取前端传递的文件对象,然后使用transferTo方法保存文件到指定路径。文件下载时,通过ResponseEntity返回文件资源对象,并设置响应头信息,以实现文件下载功能。

需要注意的是,以上代码只是一个简单的示例,实际开发中可能需要加入更多的逻辑来处理文件上传和下载,比如文件格式验证、文件大小限制等。

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

推荐文章

  • springboot kafka怎样进行消息自动化测试

    在Spring Boot中使用Kafka进行消息自动化测试,你可以使用Kafka自带的测试工具kafka-console-producer.sh和kafka-console-consumer.sh,或者使用一些专门的测试框...

  • springboot kafka能进行消息流量控制吗

    是的,Spring Boot Kafka可以进行消息流量控制。在Spring Boot中,我们可以使用Kafka的消费者配置参数来实现流量控制。以下是一些建议的配置参数: max.poll.rec...

  • springboot kafka怎样实现消息消费监控

    在Spring Boot中,我们可以使用Kafka的消费者监听器来监控消息消费情况。以下是实现消息消费监控的步骤: 首先,确保你的项目中已经添加了Kafka依赖。在pom.xml文...

  • springboot kafka如何进行消息生产监控

    在Spring Boot应用中使用Kafka进行消息生产监控,可以通过以下几种方式实现: 集成Spring Boot Actuator:
    Spring Boot Actuator提供了很多生产级的功能,包...

  • SpringBoot中怎么实现消息队列与异步通信

    在SpringBoot中,可以使用Spring的消息中间件来实现消息队列和异步通信。一种常用的消息中间件是RabbitMQ,下面是使用RabbitMQ实现消息队列与异步通信的步骤: 添...

  • SpringBoot中怎么实现网关和路由转发

    在SpringBoot中实现网关和路由转发可以借助Spring Cloud Gateway来实现。Spring Cloud Gateway是Spring Cloud的一个子项目,是基于Spring Framework 5,Project ...

  • SpringBoot中怎么使用RabbitMQ

    在SpringBoot中使用RabbitMQ,需要引入相关的依赖并配置RabbitMQ的连接信息。以下是具体的步骤: 引入RabbitMQ的依赖: org.springframework.boot spring-boot-s...

  • SpringBoot中怎么实现分布式事务管理

    在SpringBoot中实现分布式事务管理可以使用以下方法: 使用Spring Cloud的分布式事务解决方案,如Spring Cloud Alibaba的Seata或者Spring Cloud的分布式事务管理...