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>
<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>
相关文章推荐
- Flex中如何利用mx:HTTPService标签读取文本文件中的name/value这样的一对数据并显示在DataGrid中的例子
- Flex接收服务器端传送的XML数据
- 利用HTTPService实现Flex与服务器端低数据量通信
- 利用GridView显示主细表并一次编辑明细表所有数据的例子
- Oracle利用存储过程批量insert造数据和分批提交删除的例子
- Flex中如何利用mx.utils.UIDUtil类的createUID()函数创建UID的例子
- Flex中如何通过showAllDataTips属性使鼠标移动到图表时显示所有的数据Tips的例子
- 利用昆仑通态触摸屏实现数据采集和逻辑判断的例子
- android 音乐播放 启动方式 (1)利用内部类绑定service传送数据,只适用于单activity
- 利用Shell脚本实现自动备份VPS数据到Dropbox
- 利用GridView显示主细表并一次编辑明细表所有数据的例子
- 利用json处理jquery和后台的数据交互的例子
- 利用 WCF duplex Service 【推送】数据到Siliverlight客户端 的双向通讯例子
- 利用JDOM把JPG图象数据写入XML一个简单例子
- Flex中如何利用titleIcon属性给Panel容器标题部添加一个ICON图标的例子
- AJAX中的利用POST传送数据
- ajax与servlet利用json传送数据
- Flex中利用StringValidator类验证字符串合法性的例子
- 在asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数据
- Flex中利用Transform和Matrix类将图片扭曲的例子