//流向file转换
var blob = new Blob(['这里是要转换的字符串或者图片等'], {type: "text/plain;charset=utf-8"})
var file = new window.File([blob], '我爱你.txt', {type: "text/plain;charset=utf-8"})
//流向文件下载
var url = window.URL.createObjectURL(blob )
var a = document.createElement('a');
a.href = url
a.download = fileName;
a.click()
流向base64
const fileReader = new FileReader();
fileReader.onload = (e) => {
callback(e.target.result);
};
fileReader.readAsDataURL(blob);
base64转blob
base64ToBlob(code) {
//Base64一行不能超过76字符,超过则添加回车换行符。因此需要把base64字段中的换行符,回车符给去掉,有时候因为存在需要把加号空格之类的换回来,取决于base64存取时的规则。
code = code.replace(/[\n\r]/g, "");
var raw = window.atob(code);
let rawLength = raw.length;
//转换成pdf.js能直接解析的Uint8Array类型
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
console.log(uInt8Array, "uInt8ArrayuInt8Array");
console.log(new Blob([uInt8Array], { type: "application/pdf" }));
return new Blob([uInt8Array], { type: "application/pdf" }); //转成pdf类型
},
file转 arraybuffer
function fileToBuf(file, cb){
var fr = new FileReader();
var filename = file.name;
fr.readAsArrayBuffer(file);
fr.addEventListener("loadend",(e) => {
var buf = e.target.result;
cb(buf, filename);
},false);
}