php - 存储到MySQL后base64错误

标签 php mysql swift base64

我正在为 Max OS X 开发一个简单的应用程序,用于使用 Swift 语言制作屏幕截图。制作屏幕截图后,我使用以下方法将其转换为 Base64 字符串:

screenshot.base64EncodedString()

我的服务器上有一个简单的 .php 文件,用于将此 base64 字符串保存到 MySQL 数据库中。一切正常,但是当我尝试从 Android 设备上的服务器接收此图像字符串时,它在解码 Base64“坏 Base64”时抛出异常。

这是我用来解码图像的:

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

我使用它从 MySQL 数据库中放入/获取图像:

放置:INSERT INTO db (screen) VALUES ('$screen') 获取:从数据库中选择*

我将我的 base64 作为 LONGTEXT 存储在我的数据库中。

有人可以帮助我吗?

最佳答案

真正的解决方案是在提交到MySQL之前将base64编码的字符串中的“+”替换为“-”,并在从MySQL检索后将“-”替换为“+”以获得原始字符串。这是因为 MySQL 将“+”替换为空格。这样问题就解决了。

关于php - 存储到MySQL后base64错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48972042/

相关文章:

php - 如何在包含类的另一个文件中包含包含 'use'命令的php文件

php artisan key :generate doesn't do anything

ios - 使用余数运算符(模)并转换为 Int 返回 false 值

ios - 切换测量

ios - 从 String 获取用于 AVPlayer 的 URL 的问题

php - 如何在服务器上安全地存储sql dbs

php - 在 php 中用 ' 替换每个 '

mysql - 将不同的 id 连接到具有相同 id 的多个名称

mysql - MySQL 中表名和列名不区分大小写

php - 插入后如何修复mysql列值