Help

5

Download binary files with original format

Avatar
Manuel Pérez

Hi gurus!

I'd like to know how to download uplodaded binary files in the original format, the way it's done for attachments.

Thanks in advance,

Manuel.

5 Comments
Avatar
Discard
Avatar
Luke Branch
-

+1 i'm also interested in this. Is there a built-in method in Odoo to convert between base64 and the original upload format for a specific file? Please post here back if you figure this out, i'll do likewise.

Avatar
Ivan
-

Not sure of what you mean by downloading uploaded binary files (which files are these?) On the base64 that @Luke mentioned, python string object had already provide methods for encoding (http://www.tutorialspoint.com/python/string_encode.htm) and decoding (http://www.tutorialspoint.com/python/string_decode.htm).

Avatar
Manuel Pérez
-

Hi Ivan - do you know of any concrete example in any of the existing addons? I'd specially like to do it following the new API standards, thanks in advance.

Avatar
Ivan
-

@Manuel. Sorry, I haven't explored the new API standard yet. AFAIK, it should be the same regardless of the API standard. You can just try to search/grep for method name to search for example.

Avatar
SHIV SHANKAR
-
2 Answers
3
Avatar
Marvin Haß
Best Answer

Sorry, i have not enught karma for comments

This works only in FormViews:

have you tried to add the attribute "filename" in your XML-File:

PY:

class my_binary(models.Model):
    _name = 'arts.bewerber'

    binary = fields.Binary('Binray')

    binary_fname = fields.Char('Binary Name')

XML:

<field name="binary" filename="binary_fname"/>

<field name="binary_fname" invisible="1"/>

 

Im actually loocking for an solution in TreeViews :-(

Avatar
Discard
0
Avatar
Manuel Pérez
Best Answer

Hi Marvin,

Yes I have indeed tried after your answer, but without success.. any other advice? The code:

class product_image(models.Model):
    _name = 'product.image'

    name = fields.Char(string='Name')
    image = fields.Binary(string='Image')
    image_fname = fields.Char(string='File name')
    product_tmpl_id = fields.Many2one('product.template', string='Product')

And the XML:

<field name="image" string="Image" filename="image_fname"/>
<field name="image_fname" invisible="1"/>

The filename is displayed on the binary field link, but when downloading the file it's a .bin file, not the original one.

Thanks,

Manuel.

Avatar
Discard