【SpringBoot】电脑商城-07-上传头像
在Spring Boot项目中实现上传用户头像功能,你可以使用MultipartFile
接口来处理上传的文件。以下是一个简化的例子:
- 添加依赖到
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 创建一个控制器
UserController.java
:
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.nio.file.*;
@RestController
@RequestMapping("/user")
public class UserController {
private static final String UPLOAD_DIR = "uploads/";
@PostMapping("/upload-avatar")
public String uploadAvatar(@RequestParam("avatar") MultipartFile file) {
if (file.isEmpty()) {
return "文件为空,请选择一个文件上传。";
}
try {
// 确保目录存在
Files.createDirectories(Paths.get(UPLOAD_DIR));
// 构建目标文件路径
String filename = UPLOAD_DIR + file.getOriginalFilename();
Path path = Paths.get(filename);
// 保存文件
Files.copy(file.getInputStream(), path, StandardCopyOption.REPLACE_EXISTING);
return "文件上传成功: " + filename;
} catch (IOException e) {
e.printStackTrace();
return "文件上传失败 => " + e.getMessage();
}
}
}
- 在
application.properties
中配置Multipart请求的属性(可选):
spring.servlet.multipart.max-file-size=2MB
spring.servlet.multipart.max-request-size=2MB
- 前端表单提交代码(HTML):
<form method="POST" action="/user/upload-avatar" enctype="multipart/form-data">
<input type="file" name="avatar" />
<input type="submit" value="上传头像" />
</form>
确保你的Spring Boot应用有足够的权限来写入上传目录。上面的代码片段提供了一个简单的文件上传接口,用户可以通过POST请求上传头像,文件将被保存到服务器的uploads
目录下。
评论已关闭