UPD TypeScript version is also available in answers
Now I’m getting File object by this line:
file = document.querySelector('#files > input[type="file"]').files[0]
I need to send this file via json in base 64. What should I do to convert it to base64 string?
Advertisement
Answer
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]; try { const result = await toBase64(file); return result } catch(error) { console.error(error); return; } //... }