In it's most simple form: this is all you need to do in CF. You don't
need to convert it. It comes over AMF as binary data.
<cffunction name="save" access="remote" output="false"
returntype="void">
<cfargument name="data" type="binary" required="true" />
<cffile action="write" file="c:\temp\data.jpg"
output="#arguments.data#" />
</cffunction>
You only need to use "tobinary" if you are sending it as base64 encoded
data across a web service or http service.
-Andy
_____________________________________
Andrew Trice
Cynergy Systems, Inc.
http://www.cynergysystems.com
Blog: http://www.cynergysystems.com/blogs/page/andrewtrice
Email: [EMAIL PROTECTED]
Office: 866-CYNERGY
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Paul Whitelock
Sent: Wednesday, February 14, 2007 2:32 PM
To: [email protected]
Subject: [flexcoders] Re: Exporting Charts as Image
Hi Andy,
I'm using remoting/AMF in other parts of my application, so I don't
think I'll have a problem sending the data to ColdFusion after it's
prepared. I just wasn't sure what to do with the data once I got it to
ColdFusion to turn it into a file (I'm fairly new to ColdFusion).
I'll take a look at the ColdFusion toBinary function and I assume that
after the data comes out of toBinary I can write the file using
cffile. Anyway, it gives me a foothold to get started :-) Thanks!
Paul
--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, "Andrew Trice" <[EMAIL PROTECTED]>
wrote:
>
> Glad my blog entry helped. :-)
>
> You can use the as3 PNGEncoder or JPGEncoder libraries at
> http://code.google.com/p/as3corelib/
<http://code.google.com/p/as3corelib/> to do the image format
conversion
> within the flex application. You can post it to a server using either
> remoting, web service, or http service. Remoting/AMF3 is fastest and
> easiest, but the other methods work well too. Remoting does not
require
> any base64 conversion for the binary data; you can send it "across the
> wire" as is.
>
>
>
> -Andy
>
>
>
> This is from a previous post I wrote here on flexcoders...
>
>
>
> If you are using AMF3 (RemoteObject), you can serialize binary data
> without any conversion. If you are trying a standard HTTP post, I
would
> use a HTTPService with the method= "POST". Then you have to Base64
> encode the binary data and attach it to the parameters of the http
> service. On the server side, you will need to decode the base64
encoded
> data back into binary.
>
>
>
> Example:
>
>
>
> <mx:HTTPService
>
> id="httpService"
>
> showBusyCursor="true"
>
> useProxy="false"
>
> method="POST"
>
> resultFormat="text"
>
> url="/BinaryData/cf/HTTPImageSave.cfm"
>
> result="onResult('Data Saved via mx:HTTPService')"
>
> fault="onFault(event)" />
>
>
>
> private function base64Encode( data : ByteArray ) : String
>
> {
>
> var encoder : Base64Encoder = new Base64Encoder();
>
> encoder.encodeBytes( data );
>
> return encoder.flush();
>
> }
>
>
>
> private function sendData() : void
>
> {
>
> var data : ByteArray = encoder.encode( myPngByteArray );
>
> var params : Object = { data : base64Encode( data ) };
>
> httpService.send( params );
>
> }
>
>
>
> In ColdFusion, you can decode the base64 data simply by using the
> "toBinary" function. Other languages have similar functions as well.
>
>
>
> Just a FYI... using the JPG instead of PNG requires significantly less
> bandwidth & time to post the data to the server. Base64 encoding the
> data also increases the size of the data being transferred "across the
> wire". It is much more efficient to use a remoteObject method with
> JPG-compressed data.
>
> _____________________________________
>
> Andrew Trice
>
> Cynergy Systems, Inc.
>
> http://www.cynergysystems.com <http://www.cynergysystems.com>
>
>
>
> Blog: http://www.cynergysystems.com/blogs/page/andrewtrice
<http://www.cynergysystems.com/blogs/page/andrewtrice>
>
> Email: [EMAIL PROTECTED]
>
> Office: 866-CYNERGY