# 上传图片并预览

function FileUpload() {
  return (
    <div>
      <input type="file" onChange={handleFiles} />
      <div className="preview"></div>
    </div>
  );
}

function handleFiles(e) {
  const preview = document.querySelector(".preview");
  const selectFile = e.target.files[0];
  // 创建img标签
  let img = document.createElement("img");
  img.classList.add("obj");
  preview.appendChild(img);
  const reader = new FileReader();
  reader.readAsDataURL(selectFile);
  reader.onload = (e) => {
    // console.log("e: ", e);
    img.src = e.target.result;
    img.width = 640;
    img.height = 320;
  };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# FileReader.readAsDataURL()

readAsDataURL 方法会读取指定的 Blob 或 File 对象。读取操作完成的时候,readyState 会变成已完成DONE,并触发 loadend (en-US) 事件,同时 result 属性将包含一个data:URL格式的字符串(base64编码)以表示所读取文件的内容。