如何从 reader.result 获取主要的 base64 值?

How to get the main base64 value from reader.result?

我成功获取了我的文件的 base64 值,但使用该值我也获取了文件类型和字符串类型,但我不希望这样。我只想要实际值,因为我需要将它发送到后端。

将文件转换为 base64 的代码

handleUpload(e) {
  var reader = new FileReader();
  const file = (e.target as HTMLInputElement).files[0];
  reader.readAsDataURL(file);
  reader.onload = () => {
    console.log(reader.result as string);
  };
}

我想要从 'base64,' 字后的 'U' 开始的值。

您可以简单地使用 RegExp:

reader.result.replace(/^.+?;base64,/, '')

但是正如评论中提到的,您还应该考虑按原样发布二进制文件,而不需要进行转换。

const file = (e.target as HTMLInputElement).files[0];
const body = new FormData;
body.append('file', file);
fetch('/end-point', {
  method: 'POST',
  body
});

这种方式速度更快,效率更高,因为base64的大小比二进制大,无需等待客户端转换二进制文件。