【发布时间】:2019-05-23 16:35:02
【问题描述】:
我需要一些帮助,我正在做一个类似于 9gag 的项目,我试图返回一个 JSON 对象,其中有一些数据和图像。
我尝试了几种方法,以字节数组返回图像并将 GetMapping 注释设置为产生 = "image/jpeg"。我也试过用 Base64 做,但由于我是使用 Base64 的新手,我不完全确定我是否正确使用它。
@GetMapping(value = "/")
public List<PostDTO> browseAll() throws IOException {
List<Media> dbMedia = mediaRepo.findAll();
List<PostDTO> postDTOS = new ArrayList<>();
for (Media media : dbMedia){
postDTOS.add(media.convertToPostDTO());
}
for (PostDTO post : postDTOS){
post.setFile(returnImage());
}
return postDTOS;
}
private String returnImage() throws IOException {
List<Media> media = mediaRepo.findAll();
for (Media file : media){
File newImage = new File(file.getDir());
FileInputStream fis = new FileInputStream(newImage);
String encoded = Base64.getEncoder().encodeToString(fis.readAllBytes());
String imgData = "data:image/jpeg;base64," + Base64Utils.decodeFromString(encoded);
return imgData;
}
return "failed";
}
通过使用produce =“image/jpec”我得到了这个-“已解决[org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示]”另外我正在使用邮递员进行测试。 还有一个 Json 对象的样子,在“文件”中,我想要实际的图像。
{
"author": "Uponn",
"title": null,
"likes": 0,
"file": "data:image/jpeg;base64,[B@3acfd4dd",
"uploadTime": null
},
【问题讨论】:
-
你想获取图片还是包含图片和数据的json?
-
包含图像和数据的json。
-
您是否从任何其他网站获得过这种 json 数据/响应?还是你想这样创作?
-
我希望我的也是这样。尚未检查其他站点的 json 响应。为什么?这不是好方法吗?
-
您必须思考,即使您能够生成 javascript 将如何转换该 json 消息以显示图像和文本数据?