我成功获取了文件的
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大小比二进制文件大,而且不需要等待客户端转换二进制文件。