base64 编码图片一般会使体积变大多少?

2022-04-15 21:05:25 +08:00
 rv54ntjwfm3ug8

客户要求把用户上传的 8~9MB 照片全部 base64 保存进数据库防止被传马,API 直接返回 base64 ,给他解释 base64 会让图片变大他理解不了

6193 次点击
所在节点    程序员
40 条回复
rainboat
2022-04-15 21:10:15 +08:00
实践是检验真理的唯一标准,多找几张图转成 base64 编码试试
claneo
2022-04-15 21:11:54 +08:00
33%
gdfsjunjun
2022-04-15 21:13:27 +08:00
数据库存 base64?是个勇士
gdfsjunjun
2022-04-15 21:14:17 +08:00
自己搭建图床系统,数据库只存图片路径
yaoyao1128
2022-04-15 21:14:25 +08:00
36
This encoding causes an overhead of 33–36% (33% by the encoding itself; up to 3% more by the inserted line breaks).
来源 维基百科 Base64
但是 gzip 可以解决一部分
chendy
2022-04-15 21:17:46 +08:00
数据库存 blob 呗,base64 何必呢
jinliming2
2022-04-15 21:26:14 +08:00
@yaoyao1128 通常不做展示的话,不会插换行符的,所以就是 33%
aptx4689
2022-04-15 21:47:54 +08:00
你可以给他演示一下用 base64 存数据库也能挂马
crab
2022-04-15 21:57:03 +08:00
4/3
yuzo555
2022-04-15 22:04:09 +08:00
三个字节的原文会变成 4 个字节的 Base64 编码。
Tink
2022-04-15 22:19:40 +08:00
数据库字段得多长.
FreeEx
2022-04-15 22:21:52 +08:00
minIO 不好用吗
xianrenT
2022-04-15 22:25:52 +08:00
@gdfsjunjun 为啥是个勇士,除了占用空间还有什么坏处吗?
luzemin
2022-04-15 22:33:37 +08:00
@xianrenT 传输带宽
vvhhaaattt
2022-04-15 23:06:47 +08:00
我记得谷歌相册 web 就是将图片 base64 编码后上传?
vvhhaaattt
2022-04-15 23:14:35 +08:00
@vvhhaaattt 搜索了下没有相关文档。但我记得是哪个服务上传图片的接口要用 base64 编码,文档中还提到图片大小跟占用宽带不一致,服务端限制的图片大小而不是宽带大小。
另外 base64 编码后比较方便放到 json 中,统一接口 content type 。
vvhhaaattt
2022-04-15 23:16:40 +08:00
😅没仔细看是入库编码啊……
xtinput
2022-04-15 23:22:49 +08:00
base64 的有效数据 75%,所以会增大 33.333%
kaiki
2022-04-15 23:25:53 +08:00
前端获取不到后端文件的路径的话,就算是木马也没法执行啊,原文件储存,中间用个图片解析程序中转下不就行了
mikewang
2022-04-16 00:16:05 +08:00
Base64 ,故名思义,64 进制( 2^6 ),一个字符表示 6 个比特数据
一个字符计算机储存为 8 个比特,多出来(8-6)/6 = 1/3 = 33.33%

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

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

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

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

© 2021 V2EX