Javascript 获取图像或节点的base64的最佳方法
我想获取图像的base64数据。我在angular 6中作为前端工作,在NodeJS中作为后端工作。我应该从哪里获得base64字符串?要么它是在前端计算的,要么我必须在后端转换它,然后将其发送回前端?Javascript 获取图像或节点的base64的最佳方法,javascript,node.js,angular,base64,tobase64string,Javascript,Node.js,Angular,Base64,Tobase64string,我想获取图像的base64数据。我在angular 6中作为前端工作,在NodeJS中作为后端工作。我应该从哪里获得base64字符串?要么它是在前端计算的,要么我必须在后端转换它,然后将其发送回前端? 在前端和后端获取base64数据的最佳方法是什么您可以通过以下客户端代码获取base64 handleFileSelect(evt){ var files = evt.target.files; var file = files[0]; if (files &a
在前端和后端获取base64数据的最佳方法是什么您可以通过以下客户端代码获取base64
handleFileSelect(evt){
var files = evt.target.files;
var file = files[0];
if (files && file) {
var reader = new FileReader();
reader.onload =this._handleReaderLoaded.bind(this);
reader.readAsBinaryString(file);
}
}
_handleReaderLoaded(readerEvt) {
var binaryString = readerEvt.target.result;
this.base64textString= btoa(binaryString);
console.log(btoa(binaryString));
}
您可以在前端和后端转换映像。
如果您不需要存储图像,那么最好在前端对其进行转换。否则,如果要将图像存储为base64格式,则可以在服务器端对其进行转换 您可以在angular和NodeJ上转换为base64。视需要而定。如果你在任何一方都有转换的灵活性,我建议你使用nodejs。若您尝试使用angular,此转换将在浏览器上完成,其中浏览器可能在低端计算机上打开,并且某些文件api特定于浏览器。如果文件大小过大,Filereader或FIleonload将花费更多时间
但是,由于大多数服务器将托管在高端计算机上,这将提高性能,并解决浏览器兼容性问题。尝试更好地使用Blobit,以便在后端计算并传递到UI。示例:谢谢,@HarshaHr,我也在考虑采用这种方法。因为我记得上次我在前端转换它时,Chrome浏览器在获取50mb大小的base64视频时崩溃了。