后端是 Java,持久层是 JPA。图片是存数据库里面的,blob 类型。
现在有两个问题,一个是使用 SpringMVC 返回数据转换 JSON 数据的时候,blob 对应的字节数组会如何处理?
还有一个就是用 Vue 前端,如何渲染二进制图片数据?
我是需要单独给图片数据写个接口吗?
大家是怎么处理的呢?谢谢大家。
后端是 Java,持久层是 JPA。图片是存数据库里面的,blob 类型。
现在有两个问题,一个是使用 SpringMVC 返回数据转换 JSON 数据的时候,blob 对应的字节数组会如何处理?
还有一个就是用 Vue 前端,如何渲染二进制图片数据?
我是需要单独给图片数据写个接口吗?
大家是怎么处理的呢?谢谢大家。
1
VDimos Sep 20, 2019 via Android
得单独这一个接口,前端可以用 URL 或者 FileReader
|
2
chairuosen Sep 20, 2019
JSON 不能存二进制文件,小文件需要转成 base64 的字符串,大文件还是放 url 吧。
前端用 canvas https://stackoverflow.com/questions/38004917/how-to-render-a-blob-on-a-canvas-element |
3
hkitdog Sep 20, 2019 via iPhone
...这数据库得多大.?
|
4
LongMaoz Sep 20, 2019
数据库存 Blob 不太好吧。。。。
|
5
MzM2ODkx Sep 20, 2019
以前到一个公司提供技术支持,也是用 blob 的方案(原因是防止图片泄露给外部 = =#)。前端展示可以请求设置 responseType = 'blob',返回数据 img.src = URL.createObjectURL(blob)
|
6
0NF09LJPS51k57uH Sep 20, 2019
上个 oss 吧。。
|
7
zaul Sep 20, 2019
base64 转文件对象然后上传到服务器拿到 URL 再使用
|
8
w292614191 Sep 20, 2019
以前做的是 base64,前端直接 src:data:image/png;base64,..........
|
9
mamahaha Sep 20, 2019
虽然我没学过 java,但我知道应该用 FileWriter(),这个场景用 php 一行就能解决。
|
10
royzxq Sep 20, 2019
数据库存 blob。。。。
|
11
littlewing Sep 20, 2019
@royzxq 如果是 oracle 我觉得还是没问题的,mysql 其实数据量小的时候也无所谓,没多大性能影响。但这么做不是一个好习惯
|
12
littlewing Sep 20, 2019
@chairuosen 其实 ISO-8859-1 编码也可以的
|
13
littlewing Sep 20, 2019
@chairuosen 我们通过 json 发送数据库的 blob 字段数据时就是这么做的
|
14
honeycomb Sep 20, 2019 via Android
springmvc 如果把它 byte 数组处理的话,默认配置下会转成 base64 的字符串
|