I'm trying to convert an image (jpg) loaded via cfhttp
to binary data. I can't use cffile action="readBinary"
as it is not a local file.
Asked
Active
Viewed 6,271 times
6

Peter Boughton
- 110,170
- 32
- 120
- 176

DEfusion
- 5,533
- 5
- 44
- 60
-
3Just a quick bit of Railo evangelism, re: "I can't use cffile action="readBinary" as it is not a local file." - in Railo, you can use cffile for any file, even across http and ftp. :) – Peter Boughton Oct 08 '09 at 22:15
2 Answers
15
Here's how I handle this, and I use this to grab and process hundreds of images a day with 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)>
Once you have the image object you can then do whatever you want with it. Save it to disk, resize, you name it :). I've obviously left out all of my error checking (200 status codes, is it an image, etc), but this should get you started.

Dan Short
- 9,598
- 2
- 28
- 53
5
I've done the following which seems to work:
<cfhttp url="http://foo.com/someImage.jpg" method="get" timeout="3" result="resp">
</cfhttp>
<cfreturn resp.fileContent.toByteArray() />

DEfusion
- 5,533
- 5
- 44
- 60
-
How can we write `resp.fileContent.toByteArray()` to a file? I mean how to write binary data to file? – rrk Dec 06 '16 at 17:53
-
using Lucee you can just use resp.fileContent as this returns a true byte array – user2677034 Nov 05 '18 at 01:28