117.info
人生若只如初见

SpringBoot中怎么上传和下载文件

在SpringBoot中上传和下载文件可以通过以下步骤实现:

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

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) {
        try {
            // 保存文件到指定路径
            File newFile = new File("path/to/save/" + file.getOriginalFilename());
            file.transferTo(newFile);
            return "File uploaded successfully";
        } catch (IOException e) {
            return "File upload failed";
        }
    }
}
  1. 下载文件:
@RestController
public class FileDownloadController {

    @GetMapping("/download/{fileName}")
    public ResponseEntity downloadFile(@PathVariable String fileName) {
        Resource resource = new FileSystemResource("path/to/save/" + fileName);
        
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + resource.getFilename());
        
        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(resource.contentLength())
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(resource);
    }
}

在上传文件中,通过@RequestParam注解获取上传的文件,然后保存到指定路径。在下载文件中,通过PathVariable注解获取要下载文件的文件名,然后返回对应的文件资源,设置响应头使浏览器下载文件。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe300AzsICAFSBVQ.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提供了很多生产级的功能,包...

  • php中表格设置的方法是什么

    在PHP中,可以使用HTML标签来创建和设置表格。以下是一个示例代码,展示如何在PHP中创建和设置一个简单的表格: Simple Table Example Name Age Email John 25 j...

  • Caffe中怎么处理不平衡数据集

    在Caffe中处理不平衡数据集通常有以下几种方法: 重采样:可以通过增加少数类样本的复制或者删除多数类样本的方式,使得不同类别之间的样本数量平衡。在Caffe中,...

  • PaddlePaddle框架的应用场景有哪些

    PaddlePaddle框架是一个用于深度学习的开源框架,主要用于实现机器学习和深度学习算法。它具有高度灵活性和可扩展性,适用于多种应用场景,包括但不限于: 计算机...

  • Torch中怎么定义一个损失函数

    在Torch中定义一个损失函数,一般是通过继承nn.Module类来实现的。以下是一个示例:
    import torch
    import torch.nn as nn class CustomLoss(nn.Module...