SpringBoot上传下载

  • 上传
@PostMapping(value = "/upload")
public String upload(@RequestParam(name = "file") MultipartFile file) throws Exception {
    try {
        InputStream input = file.getInputStream();
        List<Map<String, String>> dataList = ExcelUtil.readExcelForStream(input, 0);
        for (Map<String, String> map : dataList) {
            String a = map.get("A");
            String v = map.get("V");
            log.info("A:" + a + " V:" + v);
        }
        //必须关闭
        input.close();
    } catch (Exception e) {
        log.error(":", e);
        throw new RuntimeException(e);
    }
    return "文件上传成功!";
}
  • 下载
@GetMapping(value = "/download")
public void download(HttpServletResponse response) {
    String fileName = UUID.randomUUID() + ".xlsx";
    response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
    response.setContentType("application/octet-stream");
    response.setCharacterEncoding("UTF-8");
    try (OutputStream stream = response.getOutputStream();
         InputStream inputStream = new FileInputStream("test.xlsx")) {
        stream.write(inputStream.readAllBytes());
        stream.flush();
    } catch (IOException e) {
        log.error("文件下载失败:", e);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot提供了简单且方便的方式来处理文件上传和下载。引用中提到,在Spring框架的spring-web包中对文件上传进行了封装,我们只需要在Controller的方法中声明一个MultipartFile类型的参数,就可以接收上传的文件。例如: ```java @PostMapping("/upload") public String upload(MultipartFile file) throws IOException { file.transferTo(new File("D://hello.jpg")); return "success"; } ``` 在上面的代码中,我们通过`MultipartFile`类型的参数`file`来接收上传的文件,并将文件保存到本地的"D://hello.jpg"路径下。返回"success"表示上传成功。注意,参数名`file`要与`<input name="file" type="file"/>`中的name值相同。 对于文件上传的大小限制,可以在application.yml或application.properties中进行配置。引用中提到,可以通过以下方式来设置文件上传的大小限制: ``` # application.yml spring: servlet: multipart: max-file-size: 209715200 # 设置上传的文件大小 max-request-size: 209715200 # 设置请求携带数据的大小 # application.properties spring.servlet.multipart.max-file-size=100MB # 设置上传的文件大小 spring.servlet.multipart.max-request-size=100MB # 设置请求携带数据的大小 ``` 这样,就可以限制文件上传的大小。 对于文件下载,在Spring Boot中也很简单。可以通过编写一个Controller来处理文件下载请求。例如: ```java @GetMapping("/download") public ResponseEntity<Resource> download() throws IOException { Path file = Paths.get("D://hello.jpg"); Resource resource = new UrlResource(file.toUri()); return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"") .body(resource); } ``` 在上面的代码中,我们使用`Path`和`Resource`来表示要下载的文件,然后通过`ResponseEntity`返回文件给客户端。通过设置响应头的`Content-Disposition`来指定文件的下载方式,这里使用的是附件下载。返回`ResponseEntity.ok().header(...).body(...)`表示下载成功。 总结起来,Spring Boot提供了方便的方式来处理文件上传和下载。我们只需要在Controller中声明MultipartFile类型的参数来接收上传的文件,并通过IO操作将文件保存到指定的位置。对于文件下载,可以通过编写Controller来处理下载请求,并通过设置响应头和返回ResponseEntity来实现文件下载功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [基于springboot文件上传和下载](https://blog.csdn.net/hyt_struggle/article/details/127168991)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot文件上传和下载](https://blog.csdn.net/weixin_44385486/article/details/121557114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA-葵花宝典

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值