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 

 

Reply via email to