controllers.py 925 B

1234567891011121314151617181920212223
  1. # -*- coding: utf-8 -*-
  2. from odoo import http
  3. from odoo.http import request, content_disposition
  4. import base64
  5. class Binary(http.Controller):
  6. @http.route('/web/binary/download_document', type='http', auth="public")
  7. def download_document(self, model, id, filename=None, **kw):
  8. record = request.env[model].browse(int(id))
  9. binary_file = record.datas # aqui colocas el nombre del campo binario que almacena tu archivo
  10. filecontent = base64.b64decode(binary_file or '')
  11. if not filecontent:
  12. return request.not_found()
  13. else:
  14. if not filename:
  15. filename = '%s_%s' % (model.replace('.', '_'), id)
  16. content_type = ('Content-Type', 'application/octet-stream')
  17. disposition_content = ('Content-Disposition', content_disposition(filename))
  18. return request.make_response(filecontent, [content_type, disposition_content])