Link to home
Start Free TrialLog in
Avatar of mhendrix
mhendrix

asked on

Upload file to the server using flex with an ColdFusion Script

I am looking for an example on how to upload a file from my Flex app to a server. I have tried many examples but just can't seem to get it to work.

Currently (with the code attached) I can browse and when I select a file and hit open it does nothing ( no error, no message) .

Also tried to put my upload file code in a CFC and send the file info to the CFC - My problem with that is it was looking for a form object

Anyway,  either solution will work (uploading using a CFC or having a CFM script)


Here are a couple of links that I have tried.

http://blog.flexexamples.com/2007/09/21/uploading-files-in-flex-using-the-filereference-class/

http://livedocs.adobe.com/flex/3/html/help.html?content=17_Networking_and_communications_7.html
FileUploadScript.cfm
This is my one line script just to test the upload
 
<cffile action="upload" filefield="Filedata" destination="#ExpandPath('./')#" nameconflict="OVERWRITE" />
 
--------------------------------------------------------------------------------------------------------------------------
 
Flex Code: Bits and Pieces
 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#C4C4C4, #FFFFFF]" currentState="Login" width="1000" borderStyle="solid" height="100%" x="0" y="0" verticalAlign="top" horizontalAlign="center">
 
 
			<mx:AddChild position="lastChild">
				<mx:Button label="Upload File" click="uploadMyFile();" x="428" y="88"/>
			</mx:AddChild>
 
			public var fileRef:FileReference;
			public const FILE_UPLOAD_URL:String = "http://localhost:8500/components/FileUploadScript.cfm";
 
	       private function uploadMyFile():void{		
				fileRef.browse();
	       }
 
			private function selectHandler(event:Event):void
			{						
			    try
			    {
				    fileRef.upload(new URLRequest(FILE_UPLOAD_URL));		    	
			    }
			    catch (error:Error)
			    {
			        Alert.show("Unable to upload file.");
			    }
			    
			}
			
			private function completeHandler(event:Event):void
			{				
			    Alert.show("uploaded");
			}
 
			private function init():void{	
							
				fileRef = new FileReference();								
				fileRef.addEventListener(Event.SELECT, selectHandler);
				fileRef.addEventListener(Event.COMPLETE, completeHandler);				
				fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
	
			}				

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Jones911
Jones911

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of mhendrix
mhendrix

ASKER

Thanks. I had looked at this example before but when I went back it all made sense. The only problem I had is that I had to move the .as file into my personal components directory because flex builder wouldn't recognize it in the com.... directory? Any idea why?



If you post a  screen shot of the folder setup and the import statements I mght be able to help