其他分享
首页 > 其他分享> > odoo14里面附件传输接口

odoo14里面附件传输接口

作者:互联网



@http.route('/fmcg/download/pdf', type='http', auth="public", csrf=False, cors='*') def upload_download_pdf(self, **kw): """下载pdf接口:直接返回的是一个文件对象,可直接下载

""" report = request.env.ref('zimo_fmcg_app.action_inventory_report').with_user(SUPERUSER_ID)._render_qweb_pdf(int(kw('id'))) # pdf_doc = request.env['ir.attachment'].sudo().search([('id', '=', 726)], limit=1) # data = io.BytesIO(base64.standard_b64decode(pdf_doc.datas)) data = io.BytesIO(report[0]) return http.send_file(data, filename='melon_inv.pdf', as_attachment=True)










@http.route('/fmcg/download/pdf2', type='json', methods=['POST'], auth="public", csrf=False, cors='*') def upload_download_pdf2(self, **kw): """下载pdf接口 todo 先用固定的pdf文件测试 model值: zimo.store.inventory zimo.store.transaction 传参 {"id":"", "model":"zimo.store.inventory" } """ # data = request.jsonrequest # report = request.env.ref('zimo_fmcg_app.action_inventory_report').with_user(SUPERUSER_ID)._render_qweb_pdf(1) # filename = 'test' + '.pdf' # attachment = request.env['ir.attachment'].sudo().create({ # 'name': filename, # 'type': 'binary', # 'datas': base64.b64encode(report[0]), # 'res_model': 'zimo.store.inventory', # 'res_id': 1, # 'mimetype': 'application/x-pdf' # }) pdf_attachment = request.env['ir.attachment'].sudo().search([('id', '=', 3292)], limit=1) return json.dumps( {"data": [{"pdf_file": "https://www.hxmelon.com/ad/content/%s-%s" % (pdf_attachment.id, pdf_attachment.checksum)}], "result": "success"})

 

 

二、图片传送接口

有两种方式:

1、一种是传对象

base64_data = base64.b64encode(kw['file'].read())

2、一种是传文件内容

file = request.httprequest.data
 @http.route('/fmcg/active/image', type='http', methods=['POST'], auth="public", csrf=False, cors='*')
    def upload_active_imaget(self, **kw):
        """上传图片接口

""" file = request.httprequest.data _logger.info("-----------/fmcg/active/image--------------------------:%s", kw['file']) if not kw['file']: return json.dumps({'result': 'success', 'message': 'no image'}) # base64_data = base64.b64encode(kw['image_file'].read()) # base64_data = False base64_data = base64.b64encode(kw['file'].read()) active_obj = request.env['zimo.store.activities'].sudo() s_id = active_obj.search([('name', '=', kw['sid'])], limit=1) if not s_id: return json.dumps({'result': 'fail', 'message': 'not find record'}) attachment = request.env['ir.attachment'].sudo().create({ 'name': kw['file'].filename, 'datas': base64_data, 'res_id': s_id.id, 'res_model': 'zimo.store.activities', }) s_id.write({'attach_ids': [(6, 0, [attachment.id])]}) return json.dumps({'result': 'success', 'message': 'success'})

 

标签:odoo14,base64,接口,kw,attachment,附件,pdf,data,id
来源: https://www.cnblogs.com/1314520xh/p/16260463.html