我正在尝试将.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上显示的数据。如何在客户端的服务器文件夹中显示图像?谢谢。
答案 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标签显示它。