Java 和 Vue 如何处理 blob 图片?

2019-09-20 16:12:39 +08:00
 onice

后端是 Java,持久层是 JPA。图片是存数据库里面的,blob 类型。

现在有两个问题,一个是使用 SpringMVC 返回数据转换 JSON 数据的时候,blob 对应的字节数组会如何处理?

还有一个就是用 Vue 前端,如何渲染二进制图片数据?

我是需要单独给图片数据写个接口吗?

大家是怎么处理的呢?谢谢大家。

3665 次点击
所在节点    程序员
14 条回复
VDimos
2019-09-20 16:16:24 +08:00
得单独这一个接口,前端可以用 URL 或者 FileReader
chairuosen
2019-09-20 16:24:47 +08:00
JSON 不能存二进制文件,小文件需要转成 base64 的字符串,大文件还是放 url 吧。
前端用 canvas https://stackoverflow.com/questions/38004917/how-to-render-a-blob-on-a-canvas-element
hkitdog
2019-09-20 16:30:42 +08:00
...这数据库得多大.?
LongMaoz
2019-09-20 16:40:42 +08:00
数据库存 Blob 不太好吧。。。。
iMusic
2019-09-20 16:59:26 +08:00
以前到一个公司提供技术支持,也是用 blob 的方案(原因是防止图片泄露给外部 = =#)。前端展示可以请求设置 responseType = 'blob',返回数据 img.src = URL.createObjectURL(blob)
phantomzz
2019-09-20 17:03:53 +08:00
上个 oss 吧。。
zaul
2019-09-20 17:21:16 +08:00
base64 转文件对象然后上传到服务器拿到 URL 再使用
w292614191
2019-09-20 17:31:35 +08:00
以前做的是 base64,前端直接 src:data:image/png;base64,..........
mamahaha
2019-09-20 17:31:41 +08:00
虽然我没学过 java,但我知道应该用 FileWriter(),这个场景用 php 一行就能解决。
royzxq
2019-09-20 18:21:44 +08:00
数据库存 blob。。。。
littlewing
2019-09-20 18:28:13 +08:00
@royzxq 如果是 oracle 我觉得还是没问题的,mysql 其实数据量小的时候也无所谓,没多大性能影响。但这么做不是一个好习惯
littlewing
2019-09-20 18:28:53 +08:00
@chairuosen 其实 ISO-8859-1 编码也可以的
littlewing
2019-09-20 18:29:31 +08:00
@chairuosen 我们通过 json 发送数据库的 blob 字段数据时就是这么做的
honeycomb
2019-09-20 18:34:19 +08:00
springmvc 如果把它 byte 数组处理的话,默认配置下会转成 base64 的字符串

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/602587

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX