Flex2.0实现文件上传功能(服务器为ASP.NET)

简介
        新的Flex2.0类库里提供了文件类,方便了上传/下载文件。下面的程序demo演示了Flex2.0生成flash来访问本地文件,在flash里上传用户选择的文件到服务器,flash客户端可以处理文件上传进度等多个事件,服务器端是C#写的文件接收模块,把用户上传的文件保存在服务器上。
        Demo演示了ProgressEventType.PROGRESS, EventType.SELECT 2个事件的处理方法。

测试效果




测试环境

操作系统:windows2003 Server
Flex版本:Flex 2.0 Alpha 1
Flash版本: flash Player 8.5
WEB服务器:
          IIS 6.0
         .net FrameWork 1.1


客户端代码:FileUpload.mxml

None.gif <? xml version="1.0" encoding="utf-8" ?>
None.gif
< mx:Application  xmlns:mx ="http://www.macromedia.com/2005/mxml"
None.gif    xmlns
="*"  creationComplete ="init();" >
None.gif    
< mx:Script >
None.gif        
<![CDATA[
None.gif            import flash.net.FileReference;
None.gif            import mx.controls.Alert;
None.gif            import mx.events.AlertClickEvent;
None.gif            import flash.events.*;
None.gif
None.gif            var file:FileReference;
None.gif
None.gif            private function init(){
None.gif                Security.allowDomain("*");
None.gif                file = new FileReference();
None.gif                file.addEventListener(ProgressEventType.PROGRESS, onProgress);
None.gif                file.addEventListener(EventType.SELECT, onSelect);
None.gif            }
None.gif
None.gif            private function upload(){
None.gif                file.browse();
None.gif            }
None.gif            
None.gif            private function onSelect(e:Event){
None.gif                Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?",
None.gif                           "确认上传",
None.gif                           Alert.YES|Alert.NO,
None.gif                           null,
None.gif                           proceedWithUpload);
None.gif            }
None.gif            
None.gif            private function onProgress(e:ProgressEvent){
None.gif                lbProgress.text = " 已上传 " + e.bytesLoaded 
None.gif                    + " 字节,共 " + e.bytesTotal + " 字节";
None.gif            }
None.gif            
None.gif            private function proceedWithUpload(e:AlertClickEvent){
None.gif                if (e.detail == Alert.YES){
None.gif                    file.upload("http://localhost/JZService/WebForm1.aspx");                    
None.gif                }
None.gif            }
None.gif        
]]>
None.gif    
</ mx:Script >
None.gif    
None.gif    
< mx:Canvas  width ="100%"  height ="100%" >
None.gif        
< mx:VBox  width ="100%"  horizontalAlign ="center" >
None.gif            
< mx:Label  id ="lbProgress"  text ="上传" />
None.gif            
< mx:Button  label ="上传文件"  click ="upload();" />             
None.gif        
</ mx:VBox >
None.gif    
</ mx:Canvas >
None.gif
</ mx:Application >



服务端代码:WebForm1.aspx

ExpandedBlockStart.gif ContractedBlock.gif          private   void  Page_Load( object  sender, EventArgs e)  dot.gif {
InBlock.gif            
// 在此处放置用户代码以初始化页面
InBlock.gif
            HttpFileCollection uploadedFiles =  Request.Files;
InBlock.gif            
string Path = Server.MapPath("data");
ExpandedSubBlockStart.gifContractedSubBlock.gif            
for(int i = 0 ; i < uploadedFiles.Count ; i++dot.gif{
InBlock.gif                HttpPostedFile F 
= uploadedFiles[i];
ExpandedSubBlockStart.gifContractedSubBlock.gif                
if(uploadedFiles[i] != null && F.ContentLength > 0dot.gif{   
InBlock.gif                    
string newName = F.FileName.Substring(F.FileName.LastIndexOf("\\"+ 1);
InBlock.gif                    F.SaveAs(Path 
+ "/" + newName);
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }

None.gif



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值