【问题标题】:How to upload an image from Odoo 11 to an Android application?如何将图像从 Odoo 11 上传到 Android 应用程序?
【发布时间】:2018-10-24 17:30:32
【问题描述】:

我使用 XML-RPC 将图像从 Odoo-11 上传到 Android 应用程序。
如何将请求的结果转换为字节数组bytes[]
因为表格中image字段的格式是bytes[]

【问题讨论】:

    标签: android arrays odoo


    【解决方案1】:

    您需要将图像文件数据编码和解码为 base64 才能正确发送和接收数据

    【讨论】:

    • 当响应来自 odoo 服务器时,我如何解码图像,我需要将此图像存储在 android 应用程序的数据库中以格式化字节 []
    【解决方案2】:

    在 Odoo 中,图像文件存储为字符串(base64),我认为您需要将图像数据从 odoo 读取到移动应用程序中才能在移动应用程序中显示?

    您可以使用 XML-RPC 库 Odoo External Api
    外部 API 用于将 odoo 与其他系统集成
    检查 url ,我们有 "Search_read" 方法从 odoo 读取数据

    你会得到base64字符串,然后你需要在你的移动应用程序中转换base64字符串来显示图像

    eg : models.execute_kw('res.partner','search_read',[['id','=',1]],{'fields':['name','image']})
    


    您将获得合作伙伴 ID 1 的姓名和头像

    【讨论】:

    • 我如何在邮递员中以 xml 格式测试这个命令(请求的主体是什么 http://@ip:8069/xmlrpc/2/object )
    【解决方案3】:

    我有可能在 odoo 移动框架中使用其中一个图像加载库(glide、picasso.etc)吗?

    【讨论】:

    【解决方案4】:

    您可以在您的活动/片段中创建以下函数。

    public static String encodeBitmapToString(Bitmap bitmap) {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
        byte[] byteArray = byteArrayOutputStream.toByteArray();
        String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
        return encoded;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 2016-04-14
      • 2014-04-11
      • 2017-06-10
      • 2019-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      相关资源
      最近更新 更多