0

我想获取图像的 base64 数据。我在 Angular 6 作为前端和 NodeJS 作为后端工作。我应该从哪里获得 base64 字符串?它是在前端计算的,还是我必须在后端转换它然后将其发送回前端?在前端和后端获取 base64 数据的最佳方法是什么

4

3 回答 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 回答