我正在使用http://otw.rets.interealty.com/Login.asmx/Login 我正在将图像作为二进制数据。如何将REDIS中的二进制数据显示为图像。 这是我的代码
$sysid = $data['sysid'];
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 1);
echo $photos[0]['Data'];
答案 0 :(得分:0)
我会查看您获得的结果/数据的内容类型。我会用各自的类型(.jpg,.bmp)保存每个文件,然后在PHP代码中引用保存的文件。
答案 1 :(得分:0)
根据GetObject的PHRETS文档,GetObject中的最后一个参数$ location可以是“0”或“1”。 “1”返回图像的URL字符串,“0”返回二进制图像数据。
#1编码图像数据并输出到浏览器而不保存到文件。来自this SO question
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 0);
foreach ($photos as $photo)
{
if ($photo['Success'] == true)
{
$contentType = $photo['Content-Type'];
$base64 = base64_encode($photo['Data']);
echo "<img src='data:{$contentType};base64," . $base64 . "' />";
}
else
{
echo "({$photo['Content-ID']}-{$photo['Object-ID']}): {$photo['ReplyCode']} = {$photo['ReplyText']}<br />";
}
}
#2将图像保存到文件然后再显示。 From PHRETS 强>
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 0);
foreach ($photos as $photo)
{
if ($photo['Success'] == true)
{
file_put_contents("image-{$listing}-{$number}.jpg", $photo['Data']);
echo "<img src='image-{$listing}-{$number}.jpg' />";
}
else
{
echo "({$photo['Content-ID']}-{$photo['Object-ID']}): {$photo['ReplyCode']} = {$photo['ReplyText']}<br />";
}
}
答案 2 :(得分:0)
这些答案已经有了一些很好的信息。
要解决您之后的问题,Interealty服务器不支持分页。要使用密钥索引,您必须:
1)使用RETS / 1.7.2或更高版本 2)指定Limit =&gt;在您的SearchRequest中没有 3)在SearchRequest
中的Select参数中仅提供关键索引标识字段如果你正确地做了这三件事,服务器应该暂停其每个响应记录的限制。