4

我有一个脚本,它遍历 XML 文档并提取图像 URL,然后使用 CFHTTP 继续下载它们,如下所示:

<cfhttp method="get" url="#qTempImageData.url#" result="oHttp">
    <cfhttpparam type="CGI" name="http_referer" value="http://www.realestate.com.au" encoded="false" /> 
</cfhttp>
<cfimage action="write" destination="#APPLICATION.vTempPath#properties\#ListLast(qTempImageData.url, '/')#" source="#oHttp.FileContent.toByteArray()#" overwrite="yes" />

当 URL 变量“qTempImageData.url”不以 .png 或 .jpg 之类的图像扩展名终止时,就会出现问题......例如:

http://img.agentaccount.com/f6ec41e07261cec1b9e120fc0186b1cf7e583d66

此 URL 确实提供了图像,并且可以看到图像存在,但我无法将其跟踪到任何托管文件本身的 URL,因此像我通常使用上述 CFHTTP 命令一样下载它...

有什么方法可以解释像 URL 变量中的“服务”图像?

〜埃利塞奥

4

1 回答 1

3

对于您列出的 URL,曾经与该文件关联的任何文件名都已消失,因此您需要创建一个新名称。

如果您的问题是您需要扩展信息才能保存然后提供文件,那么一种方法是查看您返回的内容类型标题并使用它来确定文件扩展名。

因此,如果您的 ListLast() 调用确定的文件名不以 .jpg、.jpeg、.png 等结尾,则读取 oHttp.responseHeader["content-type"] 将是 image/jpeg 或 image/ png 来确定要添加的文件扩展名。

于 2012-11-07T09:46:55.450 回答