我使用PHP和slim框架的私有API。当我得到一条给我一个图像数据的路线时,响应似乎很奇怪(就像charset问题)。
服务器使用readfile()php函数发送图像:
$src = "image.png";
$this->app->contentType("image/png");
$this->app->response()->status(REQ_OK);
header('Content-length: '.filesize(SITE_PATH.$src));
readfile(SITE_PATH.$src);
在客户端,我使用AngularJS和$ http。
$http({
method: 'GET',
url: "/myRoute",
headers: {
'responseType': "image/png"
}
)
.success(function(result){
//treatment
})
.error(function(){
});
在Chrome上,在xhr预览中,我得到了这个: ![在此输入图像说明] [1]
请参见此处的屏幕截图:http://i.stack.imgur.com/G5Cna.png
如果我将数据发送到img的ng-src,它就不起作用了。因为奇怪的编码。
你有什么想法吗?
非常感谢
答案 0 :(得分:0)
问题在于您尝试将二进制图像插入到HTML源代码中,这是不可能的。
您需要形成一个IMG数据网址(例如,请参阅此问题:AngularJS - Show byte array content as image)
或者您需要让浏览器为您执行img加载。这意味着要创建一个<img ng-src="{{imgPath}}" />
,其中imgPath
指的是内容为/myRoute
的变量。