我想获取图像的Base64数据。我使用 Angular 6 作为前端,使用 NodeJS 作为后端。我应该从哪里获取 Base64 字符串?要么在前端计算,要么我必须在后端转换它然后将其发送回前端? 在前端和后端获取 Base64 数据的最佳方法是什么?
您可以在 Angular 和 NodeJS 上转换为 Base64。取决于要求。如果您可以灵活地在任何一方进行转换,我建议您使用nodejs。如果您尝试使用 Angular,此转换将在浏览器上完成,其中浏览器可能会在低端计算机上打开,并且某些文件 api 特定于浏览器。如果文件太大,Filereader 或 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 格式,那么您可以在服务器端将其转换。