文件转base64
主要是用到H5 方法中的 **fileReader** api。但是这个api不能return。那就**promise**来写吧。
//这个file参数 也就是文件信息,你使用 插件 时 你就可以打印出文件信息查看一下
getBase64(file) {
return new Promise((resolve, reject) => {
let reader = new FileReader();
let fileResult = "";
reader.readAsDataURL(file); //开始转
reader.onload = function() {
fileResult = reader.result;
}; //转 失败
reader.onerror = function(error) {
reject(error);
}; //转 结束 咱就 resolve 出去
reader.onloadend = function() {
resolve(fileResult);
};
});
}
base64转file
base64ToFile = (urlData, fileName,type) => {
let mime = type.match(/:(.*?);/)[1];
let bytes = atob(urlData); // 解码base64
let n = bytes.length
let ia = new Uint8Array(n);
while (n--) {
ia[n] = bytes.charCodeAt(n);
}
return new File([ia], fileName, { type: mime });
}
// 使用
let blob = base64ToFile(
"文件base64",
"pdf",//文件类型
"data:application/pdf;base64,"//文件头部信息
);
下载file文件
downloadFile = (url, fileName) => {
const a = document.createElement("a");
a.setAttribute("href", url);
a.setAttribute("download", fileName);
a.setAttribute("target", "_blank");
let clickEvent = document.createEvent("MouseEvents");
clickEvent.initEvent("click", true, true);
a.dispatchEvent(clickEvent);
}
// 使用方法
//配合上面base64转file使用
const url = URL.createObjectURL(blob);
downloadFile(url, "下载的文件名称");