这次继续讲上传,只不过服务器端用ColdFusion. 前台界面的FLEX程序跟上次一样,只不过把serverSideScript:String = "http://路径/uploadFile.php"换成了serverSideScript:String = "http://路径/uploadFile.cfm"; 详细的FLEX代码:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init();" backgroundGradientColors="[#ffffff, #c0c0c0]"> <mx:Script> <![CDATA[ private var urlRequest:URLRequest; private var fileReferenceList:FileReferenceList; //如果你是在本机上调试那么路径为:http://localhost:8500/文件夹/uploadFile.cfm; private var serverSideScript:String = "http://路径/uploadFile.cfm"; private function init():void { urlRequest = new URLRequest(serverSideScript); fileReferenceList = new FileReferenceList(); fileReferenceList.addEventListener(Event.SELECT, fileSelectedHandler); } private function uploadFile():void { fileReferenceList.browse(); } private function fileSelectedHandler(event:Event):void { var fileReference:FileReference; var fileReferenceList:FileReferenceList = FileReferenceList(event.target); var fileList:Array = fileReferenceList.fileList;
fileReference = FileReference(fileList[0]); fileReference.addEventListener(Event.COMPLETE, uploadCompleteHandler); fileReference.upload(urlRequest); statusText.text = "上传中..."; } private function uploadCompleteHandler(event:Event):void { statusText.text = "上传成功的文件: " + event.target.name; } ]]> </mx:Script>
<mx:Label text="用FLEX上传文件到PHP服务器" fontSize="14" fontWeight="bold"/> <mx:Label text="选择要上传的文件" id="statusText" fontSize="12"/> <mx:Button click="uploadFile();" label="上传" fontSize="12"/>
</mx:Application>
现在就是服务器端的代码了,其实很简单,比PHP简单多了.注意:你需要先在C盘建立一个"uploadFile"文件夹,具体参数可以在代码里修改.
<cfprocessingdirective suppresswhitespace="true"> <cftry> <cffile action="upload" fileField="filedata" destination="c:\uploadFile" nameconflict="overwrite"> <cfcatch> </cfcatch> </cftry> </cfprocessingdirective>
|