您的位置:首页 > Web前端

Flex中利用URLVariables和FileReference类Flex向服务器端脚本传送数据的例子

2008-11-07 18:35 218 查看
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white"
creationComplete="init();">

<mx:Script>
<![CDATA[
import flash.net.FileReference;
import flash.net.URLRequestMethod;
import mx.controls.Alert;
import mx.utils.StringUtil;

private var fileRef:FileReference;
private var urlVars:URLVariables;
private var urlReq:URLRequest;
private var startTimer:Number;
private var timer:Timer;

private function init():void {
fileRef = new FileReference();
fileRef.addEventListener(Event.SELECT, fileRef_select);
fileRef.addEventListener(Event.COMPLETE, fileRef_complete);
fileRef.addEventListener(IOErrorEvent.IO_ERROR, fileRef_ioError);

urlVars = new URLVariables();
urlVars.userID = 94103;
urlVars.fpVersion = flash.system.Capabilities.version;

urlReq = new URLRequest();
urlReq.method = URLRequestMethod.POST;
urlReq.data = urlVars;
urlReq.url = "http://localhost:8300/fileref/uploader.cfm";

timer = new Timer(100);
timer.addEventListener(TimerEvent.TIMER, onTimer);
}

private function onTimer(evt:TimerEvent):void {
lbl.text = String(getTimer() - startTimer) + " ms";
}

private function start():void {
fileRef.browse();
}

private function fileRef_select(evt:Event):void {
fileRef.upload(urlReq);
startTimer = getTimer();
timer.start();
}

private function fileRef_complete(evt:Event):void {
Alert.show(evt.toString(), evt.type);
timer.stop();
}

private function fileRef_ioError(evt:IOErrorEvent):void {
Alert.show(evt.text, evt.type);
timer.stop();
}
]]>
</mx:Script>

<mx:Button label="upload" click="start();" />
<mx:Label id="lbl" />

</mx:Application>

下面是ColdFusion代码:

<cfsilent><cfsetting enablecfoutputonly="true" />
<cfset req = getHTTPRequestData( )>

<cffile action="UPLOAD" filefield="Filedata" destination="#ExpandPath('.')#" nameconflict="MAKEUNIQUE">
<cfsavecontent variable="info">
<html>
<head></head>
<body>
<cfdump label="CFFILE" var="#cffile#">
<cfdump label="getHTTPRequestData()" var="#req#">
<cfif IsDefined("FORM")>
<cfdump label="FORM" var="#FORM#">
</cfif>
<cfif IsDefined("URL")>
<cfdump label="URL" var="#URL#">
</cfif>
</body>
</html>
</cfsavecontent>

<cffile action="WRITE" file="#ExpandPath('./')##cffile.serverFileName#.dump.html" output="#info#" addnewline="Yes">
</cfsilent><cfsetting enablecfoutputonly="false" />
<cfcontent reset="true" />
<cfoutput>fileName=#CFFILE.serverFile#&fileSize=#CFFILE.fileSize#</cfoutput>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: