Я хочу преобразовать локальное изображение в base64. Ридер.readAsDataURL не работает. Я всегда получаю неопределенное значение для переменной rawImg. Значение для файла var — это метаданные из файла, который я пытаюсь загрузить.
HTML:
<input
type = "file"
accept = "image/jpeg/*"
@change = "uploadImage()"
/>
JS:
uploadImage() {
const file = document.querySelector('input[type=file]').files[0]
const reader = new FileReader()
const rawImg = reader.readAsDataURL(file)
console.info(file)
console.info(rawImg)
}
совет: цикл [0] walla.. загрузка нескольких файлов



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это не сработает, если вы установите изображение непосредственно из readAsDataURL, которое всегда возвращает undefined. Вместо этого используйте событие onloadend:
const file = document.querySelector('input[type=file]').files[0]
const reader = new FileReader()
let rawImg;
reader.onloadend = () => {
rawImg = reader.result;
console.info(rawImg);
}
reader.readAsDataURL(file);
console.info(file)
.readAsDataURLасинхронный