从base64字符串中将图像从android发送到PHP是一个好习惯吗?

时间:2016-02-19 16:41:05

标签: php android mysql json image

在我的Android应用程序中我捕获图像或从库中选择图像。 然后我在base64字符串中编码该图像。 然后我以JSON格式或普通的帖子请求将该图像发送给PHP。 然后我将base64字符串解码为PNG图像并保存在服务器上。 然后将该图像的路径保存到mySQL image_url列。

这是我现在正在使用的方式..它创建图像文件..但有时它会创建损坏的图像文件(全黑或0 KB或20 KB大小)。而毕加索不适用于此类文件。它显示了毕加索的解码器失败错误。

这种方式将图像质量降低1.5 MB图像(在设备上)到50 KB图像(在服务器上)。我编码为base64的代码是,

`   // method for bitmap to base64
    public static String encodeTobase64(Bitmap image) {
        Bitmap immage = image;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        immage.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] b = baos.toByteArray();
        String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
        return imageEncoded;
    }`

如果有人有建议请帮忙。或其他方式发送和保存图像。

欢迎编辑。

1 个答案:

答案 0 :(得分:1)

这是一个很好的做法“如果”你将图像保存为数据库中的字符串,但是因为你将图像转换回png并只保存mysql中的路径(这是一个非常好的做法),所以有意义转换为base64。

我已经构建了一个Web应用程序以及显示/存储多个图像的移动应用程序。我建议,不要编码,只是以块的形式发送图像,你的PHP代码将组合这些块,创建一个图像文件并将图像的文件路径存储在数据库中(image_url)。