PHRETS v2仅在属性存在图片的情况下下载,请检查属性是否包含图片

如何解决PHRETS v2仅在属性存在图片的情况下下载,请检查属性是否包含图片

我正在使用PHRETS的版本2,并在遍历Listing ID的同时,我需要下载图像。并非所有列表都有图像。在以前的版本1中,有一个 if($ photo ['Success'] == true)

选项。

这是我在函数中的PHP代码。我注意到getContentType()将显示 application / xml; charset = utf-8 用于没有图片的列表,而 image / jpeg 用于没有图片的列表。此外,对于没有图像的列表, $ photos-> first()-> getobjectId(); 将为空白。鉴于此信息,我想我可以编写一个简单的条件检查。但是我的问题是,有什么正式的方法吗?

function downloadImages($ListingKey,$rets){
$photos = $rets->Getobject('Property','Photo',$ListingKey);

echo $photos->first()->getContentId();
echo $photos->first()->getobjectId();
echo $photos->first()->getContentType();
echo $photos->first()->getContentDescription();
echo $photos->first()->getContentSubDescription();
echo $photos->first()->getSize();
echo $photos->first()->isPreferred();
echo $photos->first()->getLocation();
}

这是我当前的条件检查

function downloadImages($listingKey,$rets){
 $photos = $rets->Getobject('Property',$listingKey);
 if($photos->first()->getContentType()=='image/jpeg'){
    mkdir('/home/server/public_html/img/'.$listingKey,0777);
    foreach ($photos as $p) {
        file_put_contents('/home/server/public_html/img/'.$listingKey.'/'.$p->getContentId().'-'.$p->getobjectId().'.jpg',$p->getContent());
    }
 } 
}

解决方法

查看服务器是否支持getobject的Location参数。在以下位置检查文档以了解如何将位置传递到GetObject方法中:https://github.com/troydavisson/PHRETS/wiki/GetObject。有时,您可以传递location = 1并取回图像计数以及指向任何图像的URL。同样,有时MLS会有一个带有列表数据的NumberOfPhotos字段,尽管我已经看到了该字段不是当前字段的情况。最后,某些系统具有媒体资源,您可以使用清单的mls ID像清单/财产资源一样查询。不幸的是,这取决于后端RETS服务器提供什么功能。您所做的没有什么错,但是其他方法可能更有效。

编辑:这是照片数量的数据字典字段:https://ddwiki.reso.org/display/DDW17/PhotosCount+Field

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?