我通过java插入图片但是在web以及client里面显示不出来
- 
OpenERP中的 image 和 binary 对象一般会用base64 encode 后存到数据库中。 直接对数据库存取的方法并不可取,可以使用xml-rpc界面来通讯。具体参见 doc.openerp.com 
- 
- 
你的意思是用默认的net-rpc(8070)可以连上? 
 xml-rpc的端口设置可以通过服务器的命令行参数来指定:
 <code>
 openerp-server.py --port=8069 -s
 </code>
 也可以直接修改服务器配置文件
 你的系统应该是windows, 那在你的用户文件夹下(即 c:document and settingsXXX)有一个openerp-server.conf的文件,你可以按需设置。
- 
我现在已经成功使用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 
- 
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] 
- 
找到了方法了。。。: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]] 

