我通过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]]