当前位置: 首页 > news >正文

SprinbBoot 文件上传

SprinbBoot 文件上传

后端(Spring Boot)

  1. 添加依赖:确保你的pom.xml文件中包含了Spring Boot的Web依赖。

xml

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 其他依赖 -->
</dependencies>
  1. 配置文件:在application.propertiesapplication.yml中配置文件上传的相关参数,例如最大文件大小。
    • 如果不配置spring.servlet.multipart.max-file-size和spring.servlet.multipart.max-request-size,那么文件上传的默认限制将由Spring Boot使用的底层库(通常是Tomcat)来决定。

properties

# application.properties
spring.servlet.multipart.max-file-size=2MB
spring.servlet.multipart.max-request-size=2MB
  1. 创建文件MultipartFile类

java

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;@RestController
public class FileUploadController {@PostMapping("/upload")public String handleFileUpload(@RequestParam("file") MultipartFile file) {try {// 检查文件是否为空if (file.isEmpty()) {return "文件不能为空";}// 保存文件到本地目录String destPath = "uploads/" + file.getOriginalFilename();file.transferTo(new File(destPath));return "文件上传成功,路径:" + destPath;} catch (IOException e) {e.printStackTrace();return "文件上传失败";}}
}
  1. 异常处理(可选):你可以创建一个异常处理器来处理文件上传过程中可能出现的异常。

java

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;@ControllerAdvice
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {@Overrideprotected ResponseEntity<Object> handleMaxUploadSizeExceededException(MaxUploadSizeExceededException exc, HttpHeaders headers, HttpStatus status, WebRequest request) {String message = "不能上传超过 " + exc.getMaxSize() + " 的文件";return new ResponseEntity<>(message, HttpStatus.PAYLOAD_TOO_LARGE);}
}

http://www.mrgr.cn/news/39390.html

相关文章:

  • 【重学 MySQL】四十二、单行子查询
  • 中间件技术
  • 树的概念简记
  • page-break系列属性与分页的控制
  • 02-指针代码示例
  • rabbitMQ 简单使用
  • CUDA 参考文章
  • 网络爬虫自动化Selenium浏览器操作
  • Quill Editor 富文本编辑器的高度问题
  • vue 项目中的配置文件(.env)的用法
  • 理解Python闭包概念
  • 在Python中实现多目标优化问题(1)
  • Object Pascal 过程与函数
  • 三元祖表的定义
  • RVC变声器入门
  • PostgreSQL数据库与PostGIS在Windows中的部署与运行
  • 《OpenCV 计算机视觉》—— Harris角点检测、SIFT特征检测
  • 彩虹易支付最新版源码及安装教程(修复BUG+新增加订单投诉功能)
  • Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录
  • C#基于SkiaSharp实现印章管理(10)