现在,我通过此行获取File对象:
file = document.querySelector('#files > input[type="file"]').files[0]
我需要在base 64中通过json发送此文件。如何将其转换为base64字符串?
现代ES6方式 (异步/等待)
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:
如果您想捕捉错误
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; } //... }