swoole服务器返回二进制文件,websocket获取并下载
参考资料
Blob的增强版-FileReaderFileReader的官网
心得
虽然浪费了我一周的时间。但 学到了的知识点颇丰:
- 二进制传输
- 二进制编码读、写、操作、下载
- 二进制编码转化
- 二进制编码转化成text形式的与file_get_contents()的读取结果相同
readAsText(<Bolb>, “utf8”)- 二进制文件的base64编码用javascript实现base64编码器以及图片的base64编码
- 以太网帧类型 以太网帧类型总结
- URL资源是文件存储的一种方式
例如:图片:是这个样子:Request URL: data:application/octet-stream;base64,<加内容…>- 文件的上传下载并不简单(我们平时用的普通HTTP, websocket向自定义的服务器上传【是个很复杂的封装过程】,等多种形式)
重点
1、二进制文件共同点:
- 打开都是显示数字
- 二进制文件用二进制传输,传输的内容都是一样(一堆不能辨识的乱码)
2、二进制文件的获取(用js实现)
- 转化方式:使用readFile类的readAsArrayBuffer() readAsBinaryString() readAsDataURL() readAsText()四种方法
- 转化结果:四种方法都是讲二进制内容转化成“其他格式”,根据使用场景的不是选择不同的“其他格式”。
- 转化前的格式在哪里能看到:websocket协议的信息交换流程中可以看到。
- 转化后怎么使用:以readAsDataURL()为例:转化结果是:URL资源,可以放在HTML的src(用于预览)、href(用于下载)属性里面,配合HTML的a标签、download属性下载二进制文件。