【发布时间】:2020-12-31 03:21:49
【问题描述】:
我正在尝试在页面上显示一些文档。 我已将它们保存在数据库中,但我不确定如何继续在网站上显示它们并使其可下载。 文件格式为(pdf、doc、ppt)。如果有人可以提出建议,我将不胜感激。
这是文件实体:
@Entity
@Table(name = "chapter_files")
public class File {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "file_id")
private Long id;
@Column(name = "file_name")
private String fileName;
@Column(name = "file")
@Lob
private byte[] file;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="chapter_id")
private Chapter chapter;
}
这是 MySQL 表创建查询:
CREATE TABLE `chapter_files` (
`file_id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`file_name` VARCHAR(50) NOT NULL,
`file` LONGTEXT NOT NULL,
`chapter_id` BIGINT(20) NOT NULL,
PRIMARY KEY (`file_id`),
INDEX `FKChapter` (`chapter_id`),
CONSTRAINT `FKChapter` FOREIGN KEY (`chapter_id`) REFERENCES `chapters` (`chapter_id`)
)
这是将文件保存在数据库中的Service类方法:
public File saveFiles(MultipartFile file, Chapter chapter) {
File doc = new File();
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
doc.setFileName(fileName);
try {
doc.setFile(file.getBytes());
doc.setChapter(chapter);
} catch (IOException e) {
e.printStackTrace();
}
return fileRepository.save(doc);
}
我不确定如何在页面上显示文件并使其可下载。如果您有任何建议或我可以阅读的任何文章,我很乐意关注。
【问题讨论】:
标签: mysql spring-boot thymeleaf multifile-uploader