美文网首页odoo
odoo保存微信小程序上传的图片

odoo保存微信小程序上传的图片

作者: 小尤root | 来源:发表于2019-07-09 17:16 被阅读0次

    写个小demo分享一下。后续完善
    小程序端

     wx.uploadFile({
              url: 'https://youmingyu.oicp.vip/wx/shop/upload',
              filePath: path,
              name: 'wximag',
              success: res => {
                resolve(res)
              },
              fail: err=>{
                reject(err)
              }
            })
          })
    

    odoo端

    @http.route('/wx/shop/upload',auth='public', methods=['POST'],csrf=False, type='http')
        def wx_app_upload(self, wximag=None,**kwargs):
            import uuid
            import os
            base_path=os.path.abspath(os.path.dirname(__file__) + os.path.sep + "..")+'\\upload\\'
            import datetime
            file_dir = datetime.datetime.now().strftime("%Y%m%d")
            save_dir = base_path+file_dir
            if not os.path.exists(save_dir):
                os.mkdir(save_dir)
                os.chmod(save_dir,stat.S_IRWXU | stat.S_IRGRP |  stat.S_IRWXO)
            file_name = str(uuid.uuid4()).replace("-", "") + ".png"
            file_path = "{0}/{1}".format(save_dir, file_name)
            wximag.save(file_path)
            file_object = open(file_path, 'rb')
            rr = ""
            try:
                while True:
                    chunk = file_object.read()
                    if not chunk:
                        break
                    rr = base64.b64encode(chunk)
                    print rr
            finally:
                file_object.close()
            print rr
            if rr != "":
                vals = {
                    "name": "小小苏哟",
                    # "contact_name": kwargs.pop("customer"),
                    "contact_name": "你好哦",
                    # "contact_name":    "民火车",
                    "phone": "12344343445",
                    "add_comment": "名车e购",
                    "city": 10,
                    "frontimage": rr
                }
                request.env['crm.lead'].sudo().create(vals)
            os.remove(file_path)
    
            return "ok"
    
    

    目的是要写入到数据库,所以采用保存后读取又删除。 tempfile使用失败

    相关文章

      网友评论

        本文标题:odoo保存微信小程序上传的图片

        本文链接:https://www.haomeiwen.com/subject/wxlfkctx.html