UPD TypeScript version is also available in answers
Now I’m getting File object by this line:
JavaScript
x
2
1
file = document.querySelector('#files > input[type="file"]').files[0]
2
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)
JavaScript
1
14
14
1
const toBase64 = file => new Promise((resolve, reject) => {
2
const reader = new FileReader();
3
reader.readAsDataURL(file);
4
reader.onload = () => resolve(reader.result);
5
reader.onerror = error => reject(error);
6
});
7
8
async function Main() {
9
const file = document.querySelector('#myfile').files[0];
10
console.log(await toBase64(file));
11
}
12
13
Main();
14
UPD:
If you want to catch errors
JavaScript
1
12
12
1
async function Main() {
2
const file = document.querySelector('#myfile').files[0];
3
try {
4
const result = await toBase64(file);
5
return result
6
} catch(error) {
7
console.error(error);
8
return;
9
}
10
//...
11
}
12