php - 在android中使用Base64

标签 php android mysql http base64

我正在将图像转换为字节数组,然后转换为 Base64 字符串,它可以完美地隐藏和解码,但是当我使用 php 将该字符串保存到 mysql 数据库并从数据库中检索它时,它不会对其进行解码并显示错误的 base64

这是我的代码。

php

$sql = "insert into users(username, password, email,mob,imagetext)
                            values ('".$username."', '".$password."', '".$email."', '".$mob."', '".$imageText."') ";                            

安卓

编码

 ByteArrayOutputStream baos = new ByteArrayOutputStream();  
 Bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 byte[] b = baos.toByteArray();
 String imageEncoded = Base64.encodeToString(b,Base64.DEFAULT);

解码

 byte[] decodedByte = Base64.decode(value, Base64.DEFAULT);                     
 b = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);

最佳答案

尝试更改 Base64.DEFAULT 中的 Base64 编码选项。 您应该使用 Base64.URL_SAFE ,它将使用发送到 php 脚本时不需要进行 url 编码的字符。 还可以考虑使用 Base64.NO_WRAP,这将阻止 MIME 新行添加到您的 Base 64 输出中。

关于php - 在android中使用Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052665/

相关文章:

mysql - 错误 1452 : Cannot add or update a child row for A3ENROLL

php - 在javascript函数中更新sql

php - Magento 注册表格

php 判断数组是否包含大于 0 的值?

android - 为 Objective-c 和 java 函数创建一个 dll

java - 无法使用自定义适配器设置第一个 ListView 项目

php - Doctrine manyToMany 返回 PersistentCollection 而不是 ArrayCollection

php - 在摘要页面上显示复选框选择

android - Google Place Picker 将被删除?

mysql - 计算属性总和的 SQL 平均值