我想获取图像的base64数据。我正在将角度 6 作为前端和 NodeJS 作为后端。我应该从哪里获得 base64 字符串?要么在前端计算,要么我必须在后端转换它,然后将其发送回前端? 以及在前端和后端获取base64数据的最佳方法是什么
你可以在 angular 和 nodejs 上转换为 base64。取决于要求。如果你有灵活性转换的任何一方,我会建议你使用 nodejs。如果您尝试使用angular,则此转换将在浏览器上完成,其中浏览器可能会在低端机器上打开,并且某些文件API特定于浏览器。如果文件大小太大,文件阅读器或 FIleonload 将花费更多时间。
但是,由于大多数服务器将托管在高端机器中,它将提高性能并解决处理浏览器兼容性的开销。
你可以通过以下方式获取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 格式,则可以在服务器端对其进行转换。