在MySQL中存储Base64 PNG

tim*_*myc 4 mysql sencha-touch

我正在使用Sencha Touch从iPad上捕获用户的数据.这包括标准表格(姓名,电子邮件等)以及客户的签名(请参阅此处的插件).

本质上,插件从用户的签名中获取坐标,并返回Base64 PNG数据.

一旦我有签名数据,我想存储它.我的两个问题是:

  1. 我应该将Base64数据与用户信息的其余部分一起存储在我的(MySQL)数据库中,还是应该根据需要创建静态文件和链接?

  2. 如果要在数据库中存储是要走的路,我应该使用哪种数据类型?

Mar*_*c B 6

没有必要对图像进行base64编码.MySQL完全能够存储二进制数据.只需确保使用'blob'字段类型,而不是'text'.文本字段受字符集转换的影响,这可能会丢弃.png数据.blob字段未翻译.

同样,base64编码将文本大小增加了大约35%,因此您将浪费大量空间,无论如何都没有任何好处.

但是,将图像存储在数据库中通常是个坏主意.你确实拥有图像永远"正确"的优势,但是在备份时可以实现绝对巨大的转储以及尝试将图像输出并显示在应用程序/网页中的各种乐趣.

最好将它外部存储在以记录主键命名的文件中,以便于访问/验证.