如何将 base64 Android 保存到 MySQL 数据库?
How to save base64 Android to MySQL database?
我正在使用改造
将图像发送到 laravel API
D/NetworkManagementSocketTagger: tagSocket(74) with statsTag=0xffffffff, statsUid=-1
I/mple1.messegin: Background concurrent copying GC freed 21904(27MB) AllocSpace objects, 14(3MB) LOS
objects, 50% free, 18MB/37MB, paused 402us total 102.147ms
E/FF1: 500 Response{protocol=http/1.1, code=500, message=Internal Server Error,
url=http://192.168.1.8/company_messenger/public/apistore}
我看到了第一行,过了一会儿又出现了另外两行
我收到这些错误我不知道到底是什么问题
我把图片转成base64
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); // bm is the bitmap object
byte[] b = baos.toByteArray();
String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
在 laravel 中,我在类型为 TEXT
的列中收到它
PS:当我只发送一个小字符串而不是解码的图像时,它被正确存储
您有哪种类型的专栏?
必须是二进制,才能存储这种数据
查看有关将数据库中的图像保存为 encodec64 或二进制文件的讨论 Storing image in database directly or as base64 data?
除了存储大量数据外,会极大地增加负载,通常将图像保存在驱动器上就足够了,只保存路径
您可以在 BlOB 和 TEXT 字段中保存的最大数据量
TINYBLOB, TINYTEXT Up to 255 bytes
BLOB, TEXT Up to 64 Kb
MEDIUMBLOB, MEDIUMTEXT Up to 16 Mb
LONGBLOB, LONGTEXT Up to 4 Gb
如您所见,TEXt 只能容纳 64 KB 的数据,并且您的图像可能比同样以 Base 54 编码的图像更大,进一步增加尺寸
如果您存储的是 base64,文本不会受到伤害,但我会将这样的列设为二进制。
但是一个TEXT或BLOB(对应的二进制类型)列最多可以有65535字节(base64编码前为43690)。对于最多 16 兆字节,请使用 MEDIUMTEXT 或 MEDIUMBLOB 类型。对于最多 4 GB 的数据,请使用 LONGTEXT 或 LONGBLOB 类型。
我正在使用改造
将图像发送到 laravel APID/NetworkManagementSocketTagger: tagSocket(74) with statsTag=0xffffffff, statsUid=-1
I/mple1.messegin: Background concurrent copying GC freed 21904(27MB) AllocSpace objects, 14(3MB) LOS
objects, 50% free, 18MB/37MB, paused 402us total 102.147ms
E/FF1: 500 Response{protocol=http/1.1, code=500, message=Internal Server Error,
url=http://192.168.1.8/company_messenger/public/apistore}
我看到了第一行,过了一会儿又出现了另外两行
我收到这些错误我不知道到底是什么问题
我把图片转成base64
ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); // bm is the bitmap object byte[] b = baos.toByteArray(); String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
在 laravel 中,我在类型为 TEXT
的列中收到它
PS:当我只发送一个小字符串而不是解码的图像时,它被正确存储
您有哪种类型的专栏?
必须是二进制,才能存储这种数据
查看有关将数据库中的图像保存为 encodec64 或二进制文件的讨论 Storing image in database directly or as base64 data?
除了存储大量数据外,会极大地增加负载,通常将图像保存在驱动器上就足够了,只保存路径
您可以在 BlOB 和 TEXT 字段中保存的最大数据量
TINYBLOB, TINYTEXT Up to 255 bytes
BLOB, TEXT Up to 64 Kb
MEDIUMBLOB, MEDIUMTEXT Up to 16 Mb
LONGBLOB, LONGTEXT Up to 4 Gb
如您所见,TEXt 只能容纳 64 KB 的数据,并且您的图像可能比同样以 Base 54 编码的图像更大,进一步增加尺寸
如果您存储的是 base64,文本不会受到伤害,但我会将这样的列设为二进制。
但是一个TEXT或BLOB(对应的二进制类型)列最多可以有65535字节(base64编码前为43690)。对于最多 16 兆字节,请使用 MEDIUMTEXT 或 MEDIUMBLOB 类型。对于最多 4 GB 的数据,请使用 LONGTEXT 或 LONGBLOB 类型。