如何通过 Django Channels 共享文件,现在有不完整的解决方案,例如来自 S3 存储桶和所有

问题描述

我正在 Django 中开发一个聊天应用程序,我想通过 django 频道共享文件。我刚刚找到了一些基于此主题解决方案,但都不完整。 所以请帮我弄清楚。 现在我正在发送类似于下面提到的代码的消息..

document.querySelector('#chat-message-submit').onclick = function(e) {
          let msg = $('#chat-message-input').val()

            var messageInputDom = document.querySelector('#chat-message-input');
            var message = messageInputDom.value;
            chatSocket.send(JSON.stringify({
              'command':'new_message','message': message,'from': username,}));
            

            messageInputDom.value = '';
          }

解决方法

只需将该文件转换为 base64 并将其作为 json 及其类型发送,然后只有您才能从数据库中正确检索它。

        const reader = new FileReader();
        reader.readAsDataURL(blob)
        reader.onload = (e) => {
          base64_data = e.target.result;
            base64_value(base64_data)
        }
    chatSocket.send(JSON.stringify({
               'command':'new_message','message': base64_data,'from': username,'msg_type':type
          
        }));