跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 我通过java插入图片但是在web以及client里面显示不出来

我通过java插入图片但是在web以及client里面显示不出来

已定时 已固定 已锁定 已移动 Odoo 新手求助
11 帖子 4 发布者 9.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • P 离线
    P 离线
    popkar77
    写于 最后由 编辑
    #1

    我用的openerp-allinone v5.0
    通过写了一个java的程序添加一幅图片进openERP数据库但是,添加完毕后在页面以及client图片都显示不出来
    代码如下:
    [i]PreparedStatement ps = conn.prepareStatement("update res_partner set x_logo=?,website='wwwwwwwwww' where name='Axelor' ");
    InputStream in;
    try {
    in = new FileInputStream("d:/pic.jpg");
    ps.setBinaryStream(1,in,in.available());
    ps.executeUpdate();
    ps.close();
    } catch (Exception e) {
    System.out.println("插入图片出错");
    e.printStackTrace();
    }[/i]

    [[i] 本帖最后由 popkar77 于 2009-6-8 16:46 编辑 [/i]]

    1 条回复 最后回复
    0
    • O 离线
      O 离线
      oldrev
      写于 最后由 编辑
      #2

      貌似 logo 是用的附件?

      1 条回复 最后回复
      0
      • P 离线
        P 离线
        popkar77
        写于 最后由 编辑
        #3

        哦,。。。我用的不是附件

        [attach]188[/attach]obiect

        [attach]189[/attach]view

        1 条回复 最后回复
        0
        • digitalsatoriD 离线
          digitalsatoriD 离线
          digitalsatori 管理员
          写于 最后由 编辑
          #4

          OpenERP中的 image 和 binary 对象一般会用base64 encode 后存到数据库中。

          直接对数据库存取的方法并不可取,可以使用xml-rpc界面来通讯。具体参见 doc.openerp.com

          【上海先安科技】(tony AT openerp.cn)

          1 条回复 最后回复
          0
          • P 离线
            P 离线
            popkar77
            写于 最后由 编辑
            #5

            现在想通过XML-RPC来实现,就先按照 doc.openerp.com/developer/6_22_XML-RPC_web_services/index.html#java 里面关于java的部分来写,但是现在却出现了另外一个问题,就是不知道通过哪个端口地址来使用Xml-rpc。
            所以我怀疑是我的openERP没有开启XML-rpc,因为我打开client的时候选择了Xml-rpc的时候他说连接不到
            [attach]190[/attach]

            [[i] 本帖最后由 popkar77 于 2009-6-10 10:28 编辑 [/i]]

            1 条回复 最后回复
            0
            • mrshellyM 离线
              mrshellyM 离线
              mrshelly
              写于 最后由 编辑
              #6

              5.0.0.3 版本,我证实过..xmlrpc 接口有问题...

              建议使用 5.0.1.x 版本...

              1 条回复 最后回复
              0
              • digitalsatoriD 离线
                digitalsatoriD 离线
                digitalsatori 管理员
                写于 最后由 编辑
                #7

                你的意思是用默认的net-rpc(8070)可以连上?
                xml-rpc的端口设置可以通过服务器的命令行参数来指定:
                <code>
                openerp-server.py --port=8069 -s
                </code>
                也可以直接修改服务器配置文件
                你的系统应该是windows, 那在你的用户文件夹下(即 c:document and settingsXXX)有一个openerp-server.conf的文件,你可以按需设置。

                【上海先安科技】(tony AT openerp.cn)

                1 条回复 最后回复
                0
                • P 离线
                  P 离线
                  popkar77
                  写于 最后由 编辑
                  #8

                  我现在已经成功使用java通过XML-RPC来进行object对象的create,但是问题仍然回到了图片怎样存进去,我试过使用本地地址但是不成功,使用网络地址在web浏览的时候还出现了BUG。

                  HashMap hash = new HashMap();
                  hash.put("name", "HELLO");
                  hash.put("relation", "regular");
                  hash.put("logo", "D:\pic.jpg");

                  Object[] params = new Object[] {"mda",id,"admin", "res.partner", "create", hash};
                  client_obj.execute("execute", params);

                  其他的成功插入,但是图片不知道怎么插入。:L

                  1 条回复 最后回复
                  0
                  • digitalsatoriD 离线
                    digitalsatoriD 离线
                    digitalsatori 管理员
                    写于 最后由 编辑
                    #9

                    logo--> x-logo, 应该还是base64 encoding的问题,不了解Java,以下是Python的方法,参考一下:
                    [code]args = [('name', '=', 'Axelor'),]
                    ids = sock.execute(dbname, uid, pwd, res.partner, 'search', args)

                    values['x_logo'] = base64.encodestring(open(imgfile, 'rb').read())
                    results = sock.execute(dbname, uid, pwd, res.partner, 'write', ids, values)

                    [/code]

                    【上海先安科技】(tony AT openerp.cn)

                    1 条回复 最后回复
                    0
                    • P 离线
                      P 离线
                      popkar77
                      写于 最后由 编辑
                      #10

                      找到了方法了。。。:lol 谢谢大家
                      [code]]InputStream photoStrean = new FileInputStream(file);

                      byte[] bytes = new byte[photoStrean.available()];
                      photoStrean.read(bytes);
                      photoStrean.close();

                      BASE64Encoder encoder = new BASE64Encoder();

                      HashMap hash = new HashMap();
                      hash.put("name", "hello with JPG!!");
                      hash.put("logo", encoder.encode(bytes));

                      Object[] ids = new Object[]{50};

                      Object[] params = new Object[] {"mda",id,"admin", "res.partner", "write",ids, hash};
                      Object result = client_obj.execute("execute", params);
                      }
                      catch(Exception e){
                      System.out.println("插入图片出错");

                      }[/code]

                      [[i] 本帖最后由 popkar77 于 2009-6-11 15:19 编辑 [/i]]

                      1 条回复 最后回复
                      0

                      • 登录

                      • 没有帐号? 注册

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 标签
                      • 热门
                      • 用户
                      • 群组