Java 保存图片到数据库时,为什么要对图片进行base64编码

我在网上总能看到相关的代码:保存图片到数据库中时,总会对图片进行Base64编码。如:
http://blog.csdn.net/hfhwfw/article/details/5544408
。我在数据库中保存图片的字段类型为 Blob,我直接保存图片相应的字节数组到 Blob即可。不明白为什么还要对图片的字节数组做 Base64编码。
最新回答
路遥归梦

2024-11-28 03:37:40

首先这是一种SB做法,图片保存到数据库这个很浪费数据库资源, 通常情况下图片等文件都是用ftp服务器来存储文件的. 为什么要用base64进行编码是因为, base64会把文件这个文件转换成字符串, base64编码后得到的是一组字符串, 为什么要用blob类型, 因为这个类型可以存储4GB数据, 数据库中普通的 varchar varchar2 text等类型都有长度的限制
东风软

2024-11-28 05:39:23

保密和字符处理
追问
那怎么保存到 Blob 类型字段中?
骑猪Δ追阳光

2024-11-28 07:09:53

因为二进制数据无法使用格式化的传输(如xml、json),而Base64提供了剔除特殊字符(如<、/)的转换,所以有时候需要传输二进制的时候就考虑进行Base64编码。
考虑一个接口可能会同时返回一个图片的数据,加上这个图片的说明,使用json返回的时候就必须要对图片信息进行Base64编码。否则,你只能返回一个url,然后让客户端再使用这个url获取图片信息。
上面只是讨论Base64的用处,至于存储在数据库是什么无所谓。本人还是倾向于原始的二进制数据,毕竟如果只有一个地方存储这些数据,那么保存原始数据能保证不会失去任何精度。