0

我正在使用http://otw.rets.interealty.com/Login.asmx/Login 我将图像作为 Binay 数据。如何将 RETS 中的二进制数据显示为图像。这是我的代码

$sysid = $data['sysid'];
$photos = $rets->GetObject("Property", "Photo", $sysid, "*", 1);
echo $photos[0]['Data'];
4

3 回答 3

0

我会查看您返回的结果/数据的内容类型。我会用各自的类型(.jpg、.bmp)保存每个文件,然后在你的 PHP 代码中引用保存的文件。

https://github.com/troydavisson/PHRETS/wiki/GetObject

于 2014-10-31T05:26:57.360 回答
0

根据 GetObject 的 PHRETS 文档,GetObject中的最后一个参数 $location 可以是“0”或“1”。“1”返回图像的 URL 字符串,“0”返回二进制图像数据。

#1 编码图像数据并输出到浏览器而不保存到文件。从这个 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 将图像保存到文件然后显示。来自 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 />";
    }

}
于 2014-11-01T23:03:11.220 回答
0

这些答案中已经有一些很好的信息。

为了解决您后面的问题,Interealty 服务器不支持分页。要使用关键索引,您必须:

1) 使用 RETS/1.7.2 或更高版本 2) 在 SearchRequest 中指定 Limit => NONE 3) 在 SearchRequest 中的 Select 参数中仅给出关键索引标识的字段

如果你做对了这 3 件事,服务器应该暂停它的每响应记录限制。

于 2014-11-17T04:59:28.787 回答