springboot的后端处理HTML的页面请求
下面是一个完整的 Spring Boot 后端示例,用于接收 <form>
提交的文件上传请求(/article/uploadLifeImage
接口),并将上传的文件保存到本地目录。
✅ 一、项目结构
upload-demo/
├── src/
│ └── main/
│ ├── java/com/example/uploaddemo/
│ │ ├── UploadDemoApplication.java
│ │ └── controller/UploadController.java
│ └── resources/
│ └── application.properties
├── pom.xml
✅ 二、依赖配置(pom.xml)
<project xmlns="http://maven.apache.org/POM/4.0.0" ...><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>upload-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>upload-demo</name><description>Spring Boot File Upload Example</description><properties><java.version>17</java.version><spring.boot.version>3.2.0</spring.boot.version></properties><dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 上传需要用到 Spring Web 的 multipart 支持 --></dependencies><build><plugins><!-- Spring Boot Maven Plugin --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
✅ 三、配置文件(application.properties
)
# 设置文件上传大小限制(可选)
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
✅ 四、主启动类(UploadDemoApplication.java)
package com.example.uploaddemo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class UploadDemoApplication {public static void main(String[] args) {SpringApplication.run(UploadDemoApplication.class, args);}
}
✅ 五、控制器(UploadController.java)
package com.example.uploaddemo.controller;import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.http.ResponseEntity;import java.io.File;
import java.io.IOException;@RestController
@RequestMapping("/article")
public class UploadController {@PostMapping("/uploadLifeImage")public ResponseEntity<String> handleFileUpload(@RequestParam("upload_file") MultipartFile file) {if (file.isEmpty()) {return ResponseEntity.badRequest().body("上传失败,文件为空");}try {// 保存目录String uploadDir = System.getProperty("user.dir") + "/uploads";File dir = new File(uploadDir);if (!dir.exists()) dir.mkdirs();// 保存文件String filePath = uploadDir + "/" + file.getOriginalFilename();file.transferTo(new File(filePath));return ResponseEntity.ok("上传成功,文件路径:" + filePath);} catch (IOException e) {e.printStackTrace();return ResponseEntity.internalServerError().body("上传失败:" + e.getMessage());}}
}
✅ 六、运行项目
-
在 IDEA 或命令行执行:
mvn spring-boot:run
-
打开浏览器,创建一个
HTML
页面测试:
<form action="http://localhost:8080/article/uploadLifeImage" method="post" enctype="multipart/form-data"><input type="file" name="upload_file" /><input type="submit" value="上传" />
</form>
✅ 七、上传结果
-
成功上传后文件保存在:
项目目录/uploads/文件名
-
浏览器返回提示:
上传成功,文件路径:...
运行效果: