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: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Paul Whitelock Sent: Wednesday, February 14, 2007 2:32 PM To: flexcoders@yahoogroups.com 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 flexcoders@yahoogroups.com <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