This question has been flagged
12 Replies
33776 Views

Hello. I need to know how to make a file upload to the server OpenERP. I'm creating a module which has to allow me to do an upload of a file to the server, then do a treatment for their content. I have done the treatment but n ose content as I can make a system call OpenERP to Upload File.

Avatar
Discard

Please elaborate. Do you mean uploading some sort of python script or csv? Not sure where you're trying to go with this, there's already importing, file attachments, etc.

Author

Hi Brett.What I want is to upload a file, it can be a txt, csv or xls from a custom module, and that module should read the contents of that file and processing it, analyzing those contents and insert those contained in the custom tables.

Best Answer

Hi,

you can use fields.binary. you can save your file in database.

in your file.py

 'data': fields.binary('File'),

in your file.xml:

<field name="data" />
 and 
<button name="import_file" string="Import" type="object"  class="oe_highlight" />

if you clik in button Import it call function import_file

in your function :

create a temp file for treatment content data.

 def import_file(self, cr, uid, ids, context=None):
    fileobj = TemporaryFile('w+')
    fileobj.write(base64.decodestring(data)) 

    # your treatment
    return

Thanks.

Avatar
Discard
Author

I need a button on my form that allows me to look at the client workstation, the file you want to upload to the server, and already once uploaded to launch the program evaluate the content of the file. After parsing the file's contents, if correct, shall be recorded in the custom tables, but never before.

yes retrieve contents of file to download to a temporary file then do tests on this file if correct save this object in your database else display a warning for example.

Author

That is: in my custom program (my. py file), I introduce the sentence: 'data': fields.binary ('File') Along with the content of the file. Xml, this creates a button on the form. Is it right? Once this is when my role would create the temporary file, and then proceed to treatment. Is it right?

I edit my answer .it is now clear?

Author

Sorry, but my English is not very fluid, so I asked confirmation, would not bother or offend. I apologize. Now if I understood your answer. The try tomorrow. Thank you. Best regards from Spain.

In your function you try to write data to a temporary file, but data is not defined in this function. How you get data?

@Joaquin i want to import sale order line from import button like i want add sale order line three(3) way 1-> add sale order line as current working oi's ok 2-> add sale oder line from my CSV/Excel file when i click on import button in sale order form view 3-> add sale order line both like 1, 2 how it is possible ?

Best Answer

Hi,

How can we do this without storing the file in the database? I would like to store the file in filepath on server.

Thanks

Avatar
Discard

You can use ir.attachment with the filestore

Best Answer

Storing field data to filestore (file store on folder data/filestore)

images= fields.Many2one(comodel_name="ir.attachment", string="Images")

Avatar
Discard