所以我正在处理从数据库(MYSQL)中提取数据的网页
图像URL字段包含存储在服务器上的文件(JPG、PNG、PDF等)的位置。
我正在尝试将base 64数据作为模型发送回前端(角度)
cmPost。模型
private id;
private postType;
private title;
private description;
private String category;
private String location;
private String eventStart;
private String eventEnd;
private String imageUrl;
private String department;
private Integer semester;
private String options;
private String settings;
private String college;
private Integer anonyomus;
private Integer status;
private String timestamp;
private String uploadBy;
上传助手。JAVA
public List<cmPost> getUploadList(String email) throws IOException {
List<cmPost> editBeforeSend = postRepo.getUploads(email);
for (var i = 0; i < editBeforeSend.size(); i++) {
System.out.println(editBeforeSend.get(i).getPostType());
if(editBeforeSend.get(i).getPostType().toString().equalsIgnoreCase("NA")) {
String path = "uploads/events/" + editBeforeSend.get(i).getImageUrl();
String ext = FilenameUtils.getExtension(path);
String encoded = Base64.getEncoder().encodeToString(Files.readAllBytes(Path.of(path)));
editBeforeSend.get(i).setImageUrl("data:image/"+ext+";base64,"+encoded);
}else if(editBeforeSend.get(i).getPostType().toString().equalsIgnoreCase("Papers") || editBeforeSend.get(i).getPostType().toString().equalsIgnoreCase("Projects")){
String path = "uploads/notes/" + editBeforeSend.get(i).getImageUrl();
String ext = FilenameUtils.getExtension(path);
String encoded = Base64.getEncoder().encodeToString(Files.readAllBytes(Path.of(path)));
editBeforeSend.get(i).setImageUrl("data:image/"+ext+";base64,"+encoded);
}
}
return editBeforeSend;
}
上传控制器。JAVA
@GetMapping("api/v1/upload/getPostList")
public ResponseEntity<?> getPollsList(@RequestParam String email) throws IOException {
List<cmPost> pollData = uploadHelper.getUploadList(email);
return new ResponseEntity<>(pollData, HttpStatus.OK);
}
但我得到了431头大错误
,在邮递员身上正常工作,但不是从前端角度,任何人都可以指出一种更好、更有效的方法来做到这一点。因为我将有很多图像文件,我需要在页面加载时发送到前端。
在我的代码中犯了一些错误,现在已经修复了,工作正常
我现在的问题是这是最好的方法吗??
场景:如果我的数据库中有1000列具有映像路径的列,那么每个映像都将转换为BASE64并发送,那么什么是最佳和高效的方法
任何指导都会非常有用
提前谢谢。