如何提供图像到客户端nodejs和angular度
我试图发送.jog图像到客户端,但我失败了。
app.get('/image', function(req, res){; res.sendfile(path.resolve(path.resolve(__dirname,'/Imagepath/image.jpg")));
});
在我的angular度上
$http({ method:'GET', url:'/image', }).then(function (response){ $scope.image= response.data; }) <img id="imgid" ng-src="{{image}}" width="500" height="400"/>
问题是响应是一些二进制数据。 我怎样才能把它发送给我可以显示在img src上的数据。 如何在客户端的服务器文件夹中显示图像?谢谢。
除非需要将图像作为数据发送(例如,dynamic生成),否则可以将图像的path设置为src。
假设您使用的是express.js,则可以将其提供为静态内容: http : //expressjs.com/en/starter/static-files.html
app.use(express.static('public'));
并与一个图像存储在public/images/image.jpg
你的angular码可以只加载图像:
$scope.image = "/images/image.jpg" <img id="imgid" ng-src="{{image}}" width="500" height="400"/>
可以理解的是,
<img>
标签不支持从二进制通过属性来源,所以你必须看另一个解决scheme。您可以尝试使用TypedArrays和
btoa
函数将二进制编码转换为客户端的Base64。 那么你可以使用<img ng-src="data:image/JPEG;base64,{{myImage}}">
在AngularJS中如何从$ http.get返回图片
所以基本上你需要采取response.data
并转换为base64,然后将其分配给$scope.image
。 之后,您可以使用上面引用的img标签来显示它。