springboot上传文件路径到数据库
时间: 2023-10-11 07:23:19 浏览: 112
springboot文件上传路径保存数据库并且可以复制路径网页访问图片
在Spring Boot中,可以使用MultipartHttpServletRequest来处理文件上传,然后将文件路径存储在数据库中。以下是一个简单的示例代码:
1. 添加依赖
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
```
2. 创建一个实体类
创建一个实体类,用来表示上传的文件信息,包括文件名、文件类型、文件大小、文件路径等信息。
```
@Entity
@Table(name = "file")
public class FileEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "file_name")
private String fileName;
@Column(name = "file_type")
private String fileType;
@Column(name = "file_size")
private Long fileSize;
@Column(name = "file_path")
private String filePath;
// getter and setter methods
}
```
3. 创建一个文件上传控制器
创建一个文件上传控制器,用来处理文件上传请求,并将文件信息存储到数据库中。
```
@RestController
public class FileController {
@Autowired
private FileRepository fileRepository;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
try {
// 获取上传文件的信息
String fileName = file.getOriginalFilename();
String fileType = file.getContentType();
Long fileSize = file.getSize();
// 保存文件到本地磁盘
String filePath = "D:/upload/" + fileName;
File dest = new File(filePath);
file.transferTo(dest);
// 将文件信息存储到数据库中
FileEntity fileEntity = new FileEntity();
fileEntity.setFileName(fileName);
fileEntity.setFileType(fileType);
fileEntity.setFileSize(fileSize);
fileEntity.setFilePath(filePath);
fileRepository.save(fileEntity);
return "上传成功";
} catch (Exception e) {
e.printStackTrace();
return "上传失败";
}
}
}
```
4. 创建一个文件存储库
创建一个文件存储库,用来操作数据库中的文件信息。
```
public interface FileRepository extends JpaRepository<FileEntity, Long> {
}
```
这样,当用户上传文件时,文件信息将被存储到数据库中。
阅读全文