springboot上传图片路径到数据库
时间: 2023-05-08 09:58:49 浏览: 126
Spring Boot 是一种基于Spring框架的快速开发框架,它提供了很多便利的功能,包括文件上传。如果需要将上传的图片路径存储在数据库中,可以按照以下步骤进行操作:
1. 在实体类中添加一个字段,用来存储图片路径:
```
@Entity
public class User {
@Id
private Long id;
private String name;
private String imagePath;
// getter/setter ...
}
```
2. 在控制器中添加上传文件的方法,并将路径存储到数据库中:
```
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@PostMapping("/upload")
public ResponseEntity<Object> uploadFile(@RequestParam("file") MultipartFile file,
@RequestParam("id") Long id) {
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
try {
User user = userRepository.findById(id).orElseThrow(() -> new NotFoundException("User not found"));
user.setImagePath("/uploads/" + fileName); // 存储文件路径到数据库
userRepository.save(user);
Path targetLocation = Paths.get("/uploads").resolve(fileName);
Files.copy(file.getInputStream(), targetLocation, StandardCopyOption.REPLACE_EXISTING);
return ResponseEntity.ok(new ResponseMessage("File uploaded successfully!"));
} catch (IOException ex) {
throw new FileUploadException("Could not store file " + fileName + ". Please try again!", ex);
}
}
}
```
3. 在前端页面中添加上传文件的表单:
```
<form method="POST" action="/api/users/upload" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="hidden" name="id" value="1" /> <!-- 上传的用户id -->
<button type="submit">Upload</button>
</form>
```
4. 最后,需要在Spring Boot的配置文件中添加上传文件的配置:
```
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
```
以上就是将Spring Boot上传图片路径存储到数据库的步骤。在这个例子中,图片被存储在服务器本地的/uploads目录下。在实际开发中,还需要考虑图片删除、读取等相关操作。
阅读全文