我想获取图像的 base64 数据。我在 Angular 6 作为前端和 NodeJS 作为后端工作。我应该从哪里获得 base64 字符串?它是在前端计算的,还是我必须在后端转换它然后将其发送回前端?在前端和后端获取 base64 数据的最佳方法是什么
问问题
981 次
3 回答
1
您可以在 angular 和 nodejs 上转换为 base64。取决于要求。如果您可以灵活地转换任何一方,我建议您使用 nodejs。如果您尝试使用角度,则此转换将在浏览器上完成,其中浏览器可能在低端机器上打开,并且某些文件 api 是特定于浏览器的。如果文件太大,Filereader 或 FIleonload 会花费更多时间。
但是,由于大多数服务器将托管在高端机器上,它将提高性能并解决处理浏览器兼容性的开销。
于 2020-01-03T07:18:21.383 回答
0
您可以通过以下客户端角度中的代码获取 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));
}
于 2020-01-03T05:11:22.333 回答
0
您可以在前端和后端转换图像。如果您不需要存储图像,那么最好在前端进行转换。否则,如果您要将图像存储为 base64 格式,则可以在服务器端进行转换。
于 2020-01-03T06:03:45.167 回答