Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 图像下载链接-OpenERP_Image_Download_Openerp_Attachment - Fatal编程技术网

Image 图像下载链接-OpenERP

Image 图像下载链接-OpenERP,image,download,openerp,attachment,Image,Download,Openerp,Attachment,我正在寻找一种在OpenERP的表单视图中添加下载链接的方法,这样当我单击该链接时,我就可以下载以前上传的图像。最好的方法是什么?@Hassan Zaheer 如果您使用fields.binary,那么您就可以拥有该功能,当您使用binary字段时,不要将任何小部件与该字段一起使用,并且您会注意到,odoo会将您上传的图像转换为url,您可以单击并下载该url 这里是自计算二进制字段的示例 import base64 from osv import osv, fields class my_c

我正在寻找一种在OpenERP的表单视图中添加下载链接的方法,这样当我单击该链接时,我就可以下载以前上传的图像。最好的方法是什么?

@Hassan Zaheer

如果您使用fields.binary,那么您就可以拥有该功能,当您使用binary字段时,不要将任何小部件与该字段一起使用,并且您会注意到,odoo会将您上传的图像转换为url,您可以单击并下载该url

这里是自计算二进制字段的示例

import base64
from osv import osv, fields

class my_class(osv.osv_memory):

    def get_file(self, cr, uid, ids, field_name=None, arg=None, context=None):
        result = dict.fromkeys(ids)
        for record_browse in self.browse(cr, uid, ids):
            f = open(record_browse.file_path)
            result[record_browse.id] = base64.encodestring(f.read())
            f.close()
        return result

    _name = 'my.class'

    _columns = {
        'file_path': fields.char('File Location', size=128),
        'file': fields.function(get_file, method=True, store=False, type='binary', string="Download File"),
    } 
也可以添加简单的field.binary,如:

'filedata': fields.binary('Label',filters='*.xml'),

并在视图中添加显示为可下载url的字段。

在二进制字段定义中,什么是过滤器='*.xml'?当我这样做时,下载图像不是png格式的。当我尝试打开下载的文件时,我必须选择要通过哪个程序打开它。