如何将图像提供给客户端nodejs和angular

时间:2016-08-19 15:16:34

标签: angularjs node.js image get

我正在尝试将.jog图像发送给客户端但我失败了。

app.get('/image', function(req, res){;


res.sendfile(path.resolve(path.resolve(__dirname,'/Imagepath/image.jpg")));

});

在我的角度方面

  $http({
    method:'GET',
    url:'/image',
  }).then(function (response){
    $scope.image= response.data;


  })


<img id="imgid" ng-src="{{image}}" width="500" height="400"/>

问题是响应是一些二进制数据。如何让它向我发送可以在img src上显示的数据。如何在客户端的服务器文件夹中显示图像?谢谢。

2 个答案:

答案 0 :(得分:1)

除非您需要将图像作为数据发送(例如动态生成),否则您只需将图像的路径设置为src即可。

假设您使用的是express.js,则可以将其作为静态内容提供给您:http://expressjs.com/en/starter/static-files.html

app.use(express.static('public'));

并且使用存储在public/images/image.jpg处的图像,您的角度代码可以将图像加载为:

$scope.image = "/images/image.jpg"

<img id="imgid" ng-src="{{image}}" width="500" height="400"/>

答案 1 :(得分:0)

  

可以理解,<img>代码不支持从二进制文件中获取资源   通过属性,所以你必须看另一个解决方案。

     

您可以尝试在客户端将二进制编码转换为Base64   一边用   TypedArrays   与...一起   btoa   功能。然后你就可以使用

<img ng-src="data:image/JPEG;base64,{{myImage}}">

来自How to return image from $http.get in AngularJS

的回答

基本上你需要取response.data并转换为base64,然后将其分配给$scope.image。之后,您可以使用上面引用的img标签显示它。