使用Coldfusion将CFHTTP文件内容转换为二进制数据的图像

6

我正在尝试将通过cfhttp加载的图像(jpg)转换为二进制数据。由于它不是本地文件,因此无法使用cffile action="readBinary"


3
关于 Railo 的宣传:针对 "我无法使用 cffile action="readBinary",因为它不是本地文件" 的问题 - 在 Railo 中,您可以使用 cffile 读取任何文件,即使跨越 http 和 ftp。 :) - Peter Boughton
2个回答

15

这是我的处理方式,我使用它每天在 ColdFusion 8 中获取和处理数百个图像。

<cfhttp
    timeout="45"
    throwonerror="false"
    url="http://domain/image.jpg"
    method="get"
    useragent="Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"
    getasbinary="yes"
    result="local.objGet"
>

<cfset local.objImage = ImageNew(local.objGet.FileContent)>

一旦你有了图像对象,你就可以随心所欲地对它进行操作。将其保存到磁盘上,调整大小,你想怎么做就怎么做 : )。我显然省略了所有的错误检查(200状态码、是否为图像等),但这应该能让你开始。


5
我已经做了以下操作,似乎可以工作:
<cfhttp url="http://foo.com/someImage.jpg" method="get" timeout="3" result="resp">
</cfhttp>

<cfreturn resp.fileContent.toByteArray() />

我们如何将 resp.fileContent.toByteArray() 写入文件?我的意思是如何将二进制数据写入文件? - rrk
使用 Lucee,您可以直接使用 resp.fileContent,因为它返回一个真正的字节数组。 - user2677034

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接