# 设置multipart文件上传的最大限制
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
# 你的URL地址
your.url = http://127.0.0.1:8089/
# 你的文件路径
your.file = D:/phpstudy_pro/WWW/127.0.0.19/
# 设置JPA的方言
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
# 允许的跨域请求来源
spring.cors.allowed-origins=http://localhost:8080
# 允许的跨域请求方法
spring.cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
# 允许的跨域请求头部信息
spring.cors.allowed-headers=Content-Type,Authorization
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.17</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>xxxxxx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>xxxxxx</name>
<description>xxxxxx</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- 启动热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
<scope>true</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base:latest</builder>
</image>
</configuration>
</plugin>
</plugins>
</build>
</project>
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
@Service
@Component
public class AppConfig {
@Value("${your.url}")
private String yourUrl;
@Value("${your.file}")
private String yourFile;
public String getYourFile() {
return yourFile;
}
public String getYourUrl() {
return yourUrl;
}
}
@Autowired
private AppConfig appConfig;
@ApiOperation("上传文件返回网络文件地址")
@PostMapping("/upload")
public ApiResponse<String> handleFileUpload(@RequestParam("file") @NotNull MultipartFile file) {
String uploadDir = appConfig.getYourFile();
if (file.isEmpty()) {
return new ApiResponse<>(200, "请选择文件", "");
}
String originalFileName = file.getContentType();
String pattern = ".*/(.*)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(originalFileName);
if (m.find()) {
originalFileName = m.group(1);
}
String fileName = UUID.randomUUID().toString() + "." + originalFileName;
File dest = new File(uploadDir + "/" + fileName);
System.out.println(appConfig.getYourUrl() + fileName);
try {
file.transferTo(dest);
return new ApiResponse<>(200, "成功", appConfig.getYourUrl() + fileName);
} catch (IOException e) {
e.printStackTrace();
return new ApiResponse<>(200, "上传失败", "");
}
}