
Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn
由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解
本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!
开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号
如果您登录系统碰到问题,请在微信公众号留言:
我通过java插入图片但是在web以及client里面显示不出来
-
我用的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]]
-
貌似 logo 是用的附件?
-
哦,。。。我用的不是附件
[attach]188[/attach]obiect
[attach]189[/attach]view
-
OpenERP中的 image 和 binary 对象一般会用base64 encode 后存到数据库中。
直接对数据库存取的方法并不可取,可以使用xml-rpc界面来通讯。具体参见 doc.openerp.com
-
现在想通过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]]
-
5.0.0.3 版本,我证实过..xmlrpc 接口有问题...
建议使用 5.0.1.x 版本...
-
你的意思是用默认的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]]