<input type="file" class="o_input_file" name="ufile" multiple="multiple">
 @http.route()
    def portal_chatter_post(self, res_model, res_id, message, **kw):
        # result = super(MessageFilePortalChatter, self).portal_chatter_post(res_model, res_id, message, **kw);
        # return result
        if kw.get('ufile'):
            attachment_ids = []
            files = request.httprequest.files.getlist('ufile')
            Model = request.env['ir.attachment']
            for ufile in files:
                filename = ufile.filename
                if request.httprequest.user_agent.browser == 'safari':
                    # Safari sends NFD UTF-8 (where é is composed by 'e' and [accent])
                    # we need to send it the same stuff, otherwise it'll fail
                    filename = unicodedata.normalize('NFD', ufile.filename)
                try:
                    attachment = Model.create({
                        'name': filename,
                        'datas': base64.b64encode(ufile.read()),
                        'datas_fname': filename,
                        'res_model': res_model,
                        'res_id': int(0)
                    })
                except Exception:
                    _logger.exception("Fail to upload attachment %s" % ufile.filename)
                attachment_ids.append(attachment.id)
            kw['attachment_ids'] = attachment_ids;
        url = request.httprequest.referrer
        if message:
            # message is received in plaintext and saved in html
            message = plaintext2html(message)
            _message_post_helper(res_model, int(res_id), message, **kw)
            url = url + "#discussion"
        return request.redirect(url)

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐