js文件上传中file、bolb、base64图片之间的相互转化
介绍 file(文件流)、bolb(本地流)、base64(二进制流)
file
File 接口提供有关文件的信息,并允许网页中的 JavaScript 访问其内容。
通常情况下, File 对象是来自用户在一个 元素上选择文件后返回的 FileList 对象,也可以是来自由拖放操作生成的 DataTransfer 对象,或者来自 HTMLCanvasElement 上的 mozGetAsFile() API。在Gecko中,特权代码可以创建代表任何本地文件的File对象,而无需用户交互
File 对象是特殊类型的 Blob,且可以用在任意的 Blob 类型的 context 中。比如说, FileReader, URL.createObjectURL(), createImageBitmap(), 及 XMLHttpRequest.send() 都能处理 Blob 和 File。
blob
Blob 对象表示一个不可变、原始数据的类文件对象。指向的是本地的临时地址,Blob 表示的不一定是JavaScript原生格式的数据。File 接口基于Blob,继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
base64
Base64 是一组相似的二进制到文本(binary-to-text)的编码规则,使得二进制数据在解释成 radix-64 的表现形式后能够用 ASCII 字符串的格式表示出来。Base64 这个词出自一种 MIME 数据传输编码。如果是图片的base64,可以是可以用来压缩。
base64转file
1 | function base64ToFile(dataurl, filename) { |
base64转blob
1 | function base64toBlob(dataurl) { |
blob转base64
1 | function blobToBase64(blob, callback) { |
blob转file
1 | // 方法一 |
file转bse64
1 | function fileToBase64(file){ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小Q同学!
评论