二进制数据

data url

function file2DataUrl(file: File) {
  return new Promise<string>((resolve, reject) => {
    const reader = new FileReader();
    reader.onload = (event) => {
      resolve(event.target.result);
    };
    reader.onerror = (error) => {
      reject(error);
    };
    reader.readAsDataURL(file);
  })
}
 
// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...(长字符串)

blob url

function file2DataUrl(file: File) {
  const objectURL = URL.createObjectURL(file);
 
  return {
    objectURL,
    clearup: () => URL.revokeObjectURL(objectURL)
  }
}
 
// blob:http://localhost:3000/550e8400-e29b-41d4-a716-446655440000