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

问题描述 投票:0回答:1

我成功获取了文件的

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”开始的值。

javascript angular typescript base64
1个回答
2
投票

您可以简单地使用 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大小比二进制文件大,而且不需要等待客户端转换二进制文件。

© www.soinside.com 2019 - 2024. All rights reserved.