file to base64
1.
export function getBase64(file) {
return new Promise(function (resolve, reject) {
let reader = new FileReader()
let imgResult = ''
reader.readAsDataURL(file)
reader.onload = function () {
imgResult = reader.result
}
reader.onerror = function (error) {
reject(error)
}
reader.onloadend = function () {
resolve(imgResult)
}
})
}
2.
let reader = new FileReader();
reader.readAsDataURL(file[0])
console.log(reader)
base64Tofile
export function Base64toFile(dataurl, filename) {//将base64转换为文件
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, { type: mime });
}
baseToblob
export function convertBase64UrlToBlob1(base64) {
var type = base64.split(",")[0].match(/:(.*?);/)[1];//提取base64头的type如 'image/png'
var bytes = window.atob(base64.split(',')[1]);//去掉url的头,并转换为byte (atob:编码 btoa:解码)
//处理异常,将ascii码小于0的转换为大于0
var ab = new ArrayBuffer(bytes.length);//通用的、固定长度(bytes.length)的原始二进制数据缓冲区对象
//var ia = new Uint8Array(bytes.length);
for (var i = 0; i < bytes.length; i++) {
ab[i] = bytes.charCodeAt(i);
}
let blob = new Blob([ab], { type: type });
console.log(blob)
}
export function convertBase64UrlToBlob2(base64) {
var type = base64.split(",")[0].match(/:(.*?);/)[1];//提取base64头的type如 'image/png'
var bytes = window.atob(base64.split(',')[1]);//去掉url的头,并转换为byte (atob:编码 btoa:解码)
//处理异常,将ascii码小于0的转换为大于0
//var ab = new ArrayBuffer(bytes.length);//通用的、固定长度(bytes.length)的原始二进制数据缓冲区对象
var ia = new Uint8Array(bytes.length);
for (var i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
let blob = new Blob([ia], { type: type });
console.log(blob)
}
blobTobase64
export function blobToBase64(blob, callback) {
let a = new FileReader();
a.onload = function (e) { callback(e.target.result); }
a.readAsDataURL(blob);
}
urlTobase64
export function toDataUrl(url) {
return new Promise(function (resolve) {
var xhr = new XMLHttpRequest();
xhr.onload = function () {
var reader = new FileReader();
reader.onloadend = function () {
resolve(reader.result);
};
reader.readAsDataURL(xhr.response);
};
xhr.open("GET", url);
xhr.responseType = "blob";
xhr.send();
})
}
ArrayBaffToBlob
1.
export function filechange() {
let files = document.getElementById("shangchuan").files[0];
let type = files.type
console.log("files", files)
geturl(files, type)
}
function geturl(files, type) {
let reads = new FileReader();
reads.readAsArrayBuffer(files);
reads.onload = function (e) {
console.log(reads.result)
console.log(new Blob([reads.result], { 'type': type }))
// 注意:里面的this指的就是reads,所以reads.result == this.result
//document.getElementById("img").src = this.result;
}
}
2.
let blob = new Blob([buffer])
blobToArrayBuff
let blob = new Blob([1,2,3,4])
let reader = new FileReader();
reader.onload = function(result) {
console.log(result);
}
reader.readAsArrayBuffer(blob);