springboot上传文件到mysql
时间: 2023-10-17 22:06:56 浏览: 142
首先,需要将文件转换成二进制数据,并将其存储在MySQL数据库中的BLOB类型列中。以下是一个示例代码,演示如何使用Spring Boot将文件上传到MySQL数据库:
1.创建一个实体类,包含文件名和文件内容:
```
@Entity
@Table(name = "files")
public class FileEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "file_name")
private String fileName;
@Lob
@Column(name = "file_content")
private byte[] fileContent;
// getters and setters
}
```
2.创建一个控制器类,包含上传文件的端点:
```
@RestController
@RequestMapping("/files")
public class FileController {
private final FileRepository fileRepository;
public FileController(FileRepository fileRepository) {
this.fileRepository = fileRepository;
}
@PostMapping("/upload")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file) {
try {
FileEntity fileEntity = new FileEntity();
fileEntity.setFileName(file.getOriginalFilename());
fileEntity.setFileContent(file.getBytes());
fileRepository.save(fileEntity);
return ResponseEntity.status(HttpStatus.OK).body("File uploaded successfully!");
} catch (IOException e) {
e.printStackTrace();
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error uploading file!");
}
}
}
```
3.创建一个存储库类,用于在数据库中保存文件实体:
```
@Repository
public interface FileRepository extends JpaRepository<FileEntity, Long> {
}
```
现在,您可以使用Postman或其他HTTP客户端向/upload端点上传文件。文件将存储在MySQL数据库中的BLOB列中。
阅读全文