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