springboot的后端处理HTML的页面请求

发布于:2025-06-20 ⋅ 阅读:(19) ⋅ 点赞:(0)

下面是一个完整的 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());
        }
    }
}

✅ 六、运行项目

  1. 在 IDEA 或命令行执行:

    mvn spring-boot:run
    
  2. 打开浏览器,创建一个 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/文件名
    
  • 浏览器返回提示:

    上传成功,文件路径:...
    

运行效果:


网站公告

今日签到

点亮在社区的每一天
去签到