UNPKG

base64-file

Version:

Plug in for front-end conversion files

1 lines 1.05 kB
function fileToBase64(o){return new Promise((n,t)=>{let e=new FileReader;e.onload=function(e){const t=e.target.result;n(t)};e.onerror=function(e){console.log(e);t(e)};e.readAsDataURL(o)})}function imageUrlToBase64(e){return new Promise((o,t)=>{let a=createImage(e);a.onload=function(){let e=appendCanvas();e.width=a.width;e.height=a.height;let t=e.getContext("2d");t.drawImage(a,0,0);const n=e.toDataURL("image/png");o(n)};a.onerror=function(e){console.log(e);t(e)}})}function appendCanvas(){let e=document.body;let t=document.createElement("canvas");e.appendChild(t);return t}function createImage(e){let t=new Image;t.setAttribute("crossOrigin","anonymous");t.src=e;return t}function dataURLtoBlob(e){let t=e.split(","),n=t[0].match(/:(.*?);/)[1],o=atob(t[1]),a=o.length,r=new Uint8Array(a);while(a--){r[a]=o.charCodeAt(a)}return new Blob([r],{type:n})}function blobToFile(e){const t=e.type;const n=`${(new Date).getTime()}.${t.split("/")[1]}`;const o=new File([e],n,{type:t});return o}export{fileToBase64,imageUrlToBase64,dataURLtoBlob,blobToFile};