Vue将图像转换为base64

Mar*_*ein 5 html javascript base64 image vue.js

我想将本地图像转换为base64。reader.readAsDataURL不起作用。我总是得到 rawImg 变量的未定义。文件 var 的值是我尝试上传的文件的元数据。 在此输入图像描述

HTML:

<input
  type="file"
  accept="image/jpeg/*"
  @change="uploadImage()"
/>
Run Code Online (Sandbox Code Playgroud)

JS:

uploadImage() {
  const file = document.querySelector('input[type=file]').files[0]
  const reader = new FileReader()

  const rawImg = reader.readAsDataURL(file)
  console.log(file)
  console.log(rawImg)
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*Dan 8

readAsDataURL如果直接从总是返回的设置图像,它将不起作用undefined。相反,使用onloadend事件:

let rawImg;
const file = document.querySelector('input[type=file]').files[0];
const reader = new FileReader();

reader.onloadend = () => {
   rawImg = reader.result;
   console.log(rawImg);
}
reader.readAsDataURL(file);
Run Code Online (Sandbox Code Playgroud)