【问题标题】:Is it a good practice to send images in base64 string from android to PHP?将base64字符串中的图像从android发送到PHP是一种好习惯吗?
【发布时间】:2016-02-19 16:41:04
【问题描述】:

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

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

这种方式将图像质量从 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;
    }`

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

欢迎编辑。

【问题讨论】:

  • 您尝试过在多部分请求中发送照片吗?
  • @MuchOverflow 我读过但从未尝试过.. 你能分享更多关于它的信息..sample 吗?谢谢
  • 这个 stackoverflow 问题有一个很好的答案。请检查一下stackoverflow.com/a/5220954/3533289

标签: php android mysql json image


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-14
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2018-04-23
    • 2020-08-19
    相关资源
    最近更新 更多