在MySQL中存储Base64 PNG

问题描述 投票:4回答:4

我正在使用Sencha Touch从iPad上的用户捕获数据。这包括标准格式(名称,电子邮件等)以及客户的签名(请参见插件here)。

基本上,该插件从用户签名中获取坐标,并向我返回Base64 PNG数据。

一旦有了签名数据,我要存储它。我的两个问题是:

  1. 我应该将Base64数据存储在我的(MySQL)数据库以及其他数据库用户信息,或者我创建一个静态文件并链接为必要?

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

mysql sencha-touch
4个回答
6
投票

无需对图像进行base64编码。 MySQL完全能够存储二进制数据。只要确保您使用的是“ blob”字段类型,而不是“ text”即可。文本字段需要进行字符集转换,这可能会破坏您的.png数据。 Blob字段未翻译。

同样,base64编码将文本的大小增加了35%左右,因此您将浪费大量的空间而毫无益处。

但是,将图像存储在数据库中通常不是一个好主意。您确实拥有映像始终处于“正确位置”的优势,但是在备份时产生了绝对巨大的转储,并且尝试将映像显示并显示在您的应用程序/网页中会带来各种乐趣。

为了方便访问/验证,最好将其外部存储在以记录的主键命名的文件中。


2
投票

Blob将存储Base64。它将为您提供所需的东西。将其存储在数据库中将为您提供内置的关系功能,如果将其存储在静态文件中,则必须自行编写代码。希望这可以帮助。先生,祝你好运。

编辑:关于二进制v。base 64的标记是正确的


2
投票

只需将文件保存在BLOB字段中。如果您进行了一些优化(灰度或黑白),则此类PNG文件的大小不得超过1KB。


0
投票

将字段设置为Blob数据类型,它可以完美存储base64EncodedString

© www.soinside.com 2019 - 2024. All rights reserved.