How to convert file to base64 in JavaScript?

前端 未结 7 2096
醉话见心
醉话见心 2020-11-22 06:34

Now I\'m getting File object by this line:

file = document.querySelector(\'#files > input[type=\"file\"]\').files[0]

I need to send thi

7条回答
  •  礼貌的吻别
    2020-11-22 06:36

    Modern ES6 way (async/await)

    const toBase64 = file => new Promise((resolve, reject) => {
        const reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = () => resolve(reader.result);
        reader.onerror = error => reject(error);
    });
    
    async function Main() {
       const file = document.querySelector('#myfile').files[0];
       console.log(await toBase64(file));
    }
    
    Main();
    

    UPD:

    If you want to catch errors

    async function Main() {
       const file = document.querySelector('#myfile').files[0];
       const result = await toBase64(file).catch(e => Error(e));
       if(result instanceof Error) {
          console.log('Error: ', result.message);
          return;
       }
       //...
    }
    

提交回复
热议问题