@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里面附件传输接口的更多相关文章

  1. SSD的传输总线、传输协议、传输接口

    前言:关于SSD,有众多总线类型.协议类型.接口类型,每个接口还包括不同型号,在这里花点时间全部整理一下,整理日期2017-08-08. 1.传输总线 总线就像一条公路,公路上的车好比总线上的电信号: ...

  2. Tcp 数据对象传输接口对象设计

    输入是一个对象inputObj,接口对象.Send(inputObj),对端接收之后解包成outputObj(与inputObj应相同),触发onPackageReceive事件 事件 public ...

  3. 第2-3-4章 上传附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.3 接口开发-上传附件 5.3.1 接口文档 5.3.2 代码实现 5.3.3 接口测试 5.3 接口开发-上传附件 第2-1-2章 传统方式安装FastDFS-附FastDFS常用命令 第 ...

  4. Odoo附件传输

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307319.html  一:odoo后端上传附件 odoo中的ir.attachment模型是附件模型,可以用 ...

  5. java文件传输接口

    开发的时候碰到这样的需求:需要在一个系统(客户端发送请求)中将文件传输至另外一个系统(服务端接收)中去的实现方式,可以批量传输文件,代码如下: 客户端请求: public String upLoadF ...

  6. 第2-3-5章 删除附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.4 接口开发-根据id删除附件 5.4.1 接口文档 5.4.2 代码实现 5.4.3 接口测试 5.4.4 测试ALI和FAST_DFS以及MINIO上传和删除的接口 5.4.4.1 阿里 ...

  7. 第2-3-6章 打包批量下载附件的接口开发-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.6 接口开发-根据文件id打包下载附件 5.6.1 接口文档 5.6.2 代码实现 5.6.3 接口测试 5.7 接口开发-根据业务类型/业务id打包下载 5.7.1 接口文档 5.7.2 ...

  8. Java NIO Channel to Channel Transfers通道传输接口

    原文链接:http://tutorials.jenkov.com/java-nio/channel-to-channel-transfers.html 在Java NIO中如果一个channel是Fi ...

  9. Web Service 附件技术的发展及演变

    Web Service 通常将业务数据封装在 SOAP 主体或者 SOAP 消息附件中进行传输,这些附件往往采用 Base64 编码二进制方式进行封装,这将大大增加待传输的数据量,消耗比较长的编码时间 ...

  10. 【高速接口-RapidIO】4、Xilinx RapidIO核详解

    一.RapidIO核概述 RapidIO核的设计标准来源于RapidIO Interconnect Specification rev2.2,它支持1x,2x和4x三种模式,每通道的速度支持1.25G ...

随机推荐

  1. 【ABAQUS模态动力学】Material-Damping 对模态分析的影响

    先说结论,执行Frequency Step (特征值提取)时定义材料行为中的Damping 行为,对结果没有影响. 1. abaqus calculation compare 1.1 ANALYSIS ...

  2. ITSM运维管理整理总结

    ITSM 和我们平常所说的软件管理最大的不同? 目标不是管理技术,主要任务是管理用户和客户的IT需求 2.人员.技术.流程[重要] 3.几大模块 模块名称 干什么 备注 服务台 1.对接客户的前方,负 ...

  3. Qt QSqlDatabase的removeDatabase需要注意的地方

    文章目录 问题描述 Qt官方解决方法 另外一种解决方式 碎碎念 关于智能指针 问题描述 今天在做之前代码的重构的时候,在调用QSqlDatabase的removeDatabase函数的时候,出现了如下 ...

  4. go 简单封装数学运算包

    前言 我们在编写程序时,经常会遇到一些高精度的数学运算,这时候使用简单的运算符会造成精度的缺失. 这里引用了这个第三方包 https://github.com/shopspring/decimal 做 ...

  5. 通过C#转换图片到PDF文档

    将图片(JPG.PNG)转换为PDF文件可以帮助我们更好地保存和分享图片.此外,PDF文件还具有强大的安全特性,将图片转换为PDF后,我们可以通过设置密码来文件内容不被泄露.本文将介绍如何将JPG/P ...

  6. 【Linux】shell 脚本 (.sh) 编写及执行

    shell脚本 shell脚本就是一些命令的集合 #!/bin/bash echo "文件开头代表:该文件使用的是bash语法" 一.运行.sh文件 方法一:当前文件执行.sh 文 ...

  7. docker中 启动所有的容器命令

    docker中 启动所有的容器命令 docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) docker中    关闭所有的容器命令 ...

  8. 【Python】批量导出word文档中的图片、嵌入式文件

    Python 批量导出word文档中的图片.嵌入式文件 需求 学生试卷中的题目有要提交截图的,也有要提交文件的,为了方便学生考试,允许单独交或者嵌入Word中提交,那么事后如何整理学生的答案?单独提交 ...

  9. 扫盲ASM

    在进行程序跟踪时,会出现汇编.由于ASM盲,所以添加不少烦恼.有烦恼得想办法解决.对,扫盲ASM. 这里是教材,感觉大白话很好理解(感谢 http://www.ruanyifeng.com/blog/ ...

  10. 部署负载均衡:LVS-DR群集(直连路由模式)

    部署负载均衡:LVS-DR群集(直连路由模式) 文章目录 部署负载均衡:LVS-DR群集(直连路由模式) 一.LVS-DR数据包流向分析 二.LVS-DR中的ARP问题 三.LVS 负载均衡群集-DR ...