我正在使用Sencha Touch从iPad上的用户捕获数据。这包括标准格式(名称,电子邮件等)以及客户的签名(请参见插件here)。
基本上,该插件从用户签名中获取坐标,并向我返回Base64 PNG数据。
一旦有了签名数据,我要存储它。我的两个问题是:
我应该将Base64数据存储在我的(MySQL)数据库以及其他数据库用户信息,或者我创建一个静态文件并链接为必要?
如果存储在数据库是要走的路,什么数据我应该使用哪种类型?
无需对图像进行base64编码。 MySQL完全能够存储二进制数据。只要确保您使用的是“ blob”字段类型,而不是“ text”即可。文本字段需要进行字符集转换,这可能会破坏您的.png数据。 Blob字段未翻译。
同样,base64编码将文本的大小增加了35%左右,因此您将浪费大量的空间而毫无益处。
但是,将图像存储在数据库中通常不是一个好主意。您确实拥有映像始终处于“正确位置”的优势,但是在备份时产生了绝对巨大的转储,并且尝试将映像显示并显示在您的应用程序/网页中会带来各种乐趣。
为了方便访问/验证,最好将其外部存储在以记录的主键命名的文件中。
Blob将存储Base64。它将为您提供所需的东西。将其存储在数据库中将为您提供内置的关系功能,如果将其存储在静态文件中,则必须自行编写代码。希望这可以帮助。先生,祝你好运。
编辑:关于二进制v。base 64的标记是正确的
只需将文件保存在BLOB字段中。如果您进行了一些优化(灰度或黑白),则此类PNG文件的大小不得超过1KB。
将字段设置为Blob数据类型,它可以完美存储base64EncodedString