Angular - 从数据库显示图像(二进制编码)

时间:2017-03-23 14:11:25

标签: javascript angularjs image

我知道这个问题可能是重复的,但我已经尝试了几个小时而没有成功 我有一个角度应用程序,它通过表单发送了很多字段和一个图像(它是一个徽标)

它保存在mongo数据库中,当我需要在我的网络应用程序中显示图像时,我的问题就出现了。

当我发出/ GET请求时,它返回如下内容: Response 当然我得到 200 OK ,并且请求没有问题。

那么,如何通过html将其转换为可读格式? ( base64 可能?不知道是否有更多解决方案)

我的html文件:

<img ng-src="{{$ctrl.getLogoImg}}" />

我的controller.js文件:

...
vm.ReportsService.getSiteLogo( { id: vm.reportId, file: 'logo' } )
  .then( data => {
    vm.getLogoImg = data;
    console.log( 'IMG OK:' );
    console.log( data );
  } )
  .catch( err => {
    console.log( 'ERROR IMG: ', res );
  } );

我的resource.js文件:

...
getSiteLogo: {
  method: 'GET',
  params: { type: 'site' },
  responseType: 'arrayBuffer' // <== Not sure about this?
},

也许我需要在资源中使用transformResponse

我一直在阅读有关btoaUint8Array等内容,但未获成功。

有任何帮助吗?感谢。

1 个答案:

答案 0 :(得分:0)

您应该遵循GridFs规范。这将节省您的时间和精力 https://docs.mongodb.com/manual/core/gridfs/

抱歉,我无法帮助解决您的问题,我需要查看一些代码......