作者visa9527 (高级伴读士官长)
看板Ajax
标题Re: [问题] base64
时间Thu Aug 31 10:05:50 2017
之前刚好做过类似的东西,当时的流程大概是这样
1.文字讯息定义特殊的开头,收到时代表接下来会接收一段 base64 字串
比如以 :!json=> {"type":"img","arrayLength":"30", "id":"abc"} 来定义
收到 !json=> 开头的讯息时就不显示而是跑进别的 function 做处理
它定义接下来会接受一段 img 的 base64
会切成 30 段长度,这张 img 的 id 叫做 abc
2.用 File API 从客户端读入本机图片後转成 base64 字串
按照你每封讯息的长度限制去切文字,最後可能变成一个长度 30 的阵列
3.用特殊开头来传,除了第一段写的部分外,再另外加上
"index": 1, //数字,该文字是阵列的第几个
"data": "8D2VcX9f......." //被拆开来的 base64 字串
收到时你会知道有一个 img 长度会有 30 笔,图片 id 叫 abc
现在是收第 index 段的 data
然後不论先送出的讯息是否先收到,总之最後就会收到 30 个讯息
确认阵列长度 30 都填满後就可以把它 join 起来,变成原本的 base64 字串
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.146.88.200
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1504145153.A.7FD.html