0

我成功地获得了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

我想要在“base64”字之后从“U”开始的值。

4

1 回答 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大小比二进制大,而且不需要等待客户端转换二进制文件。

于 2020-07-15T09:37:58.620 回答