论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

Flash as中怎样使用 Flex 上传文件?

文章类别:Flash AS | 发表日期:2009-8-2 16:00:44

Flash as中怎样使用 Flex 上传文件?


 

以下是我在学习Flash as中整理的使用 Flex 上传文件的方法。

客户端, 只有 1 个 mxml, 看注释就明
UploadSample.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
 layout="vertical" verticalAlign="middle" horizontalAlign="center">
 
 <mx:Style>
  global {
   fontSize : 12;
  }
 </mx:Style>
 
 <mx:Script>
  <![CDATA[
   // 先搞 1 个 FileReference
   private var file:FileReference = new FileReference();
   
   // 上传状态指示, 和下面的文本框绑定
   [Bindable]
   private var stateText:String = "请选择一个文件上传";
   
   // createChildren 比 creationComplete 事件更早发生, 省的注册事件侦听, 直接在这里写了
   protected override function createChildren():void {
    super.createChildren();
    file.addEventListener(Event.SELECT, file_select);
    file.addEventListener(Event.COMPLETE, file_complete);
    file.addEventListener(ProgressEvent.PROGRESS, file_progress);
   }
   
   // 选择 1 个文件的事件
   private function file_select (e:Event):void {
    stateText = "选择了文件 " + file.name;
   }
   
   // 上传完毕后的事件
   private function file_complete (e:Event):void {
    stateText = "上传完毕";
   }
   
   private function file_progress (e:ProgressEvent):void {
    stateText = "已上传 " + Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%";
   }
   // 先判断一下文件大小, 再上传, FileService.aspx 就是上传地址
   private function upload ():void {
    if (file.size > 0) {
     stateText = "正在上传 " + file.name;
     var request:URLRequest = new URLRequest("FileService.aspx");
     file.upload(request);
    }
   }
   
   
  ]]>
 </mx:Script>
 
 <mx:Panel width="250" height="112" layout="vertical" title="上传示例"
  verticalAlign="middle" horizontalAlign="center" >
  <mx:HBox>
   <mx:TextInput text="{stateText}" width="160" editable="false"/>
   <mx:Button label="浏览" click="file.browse();"/>
  </mx:HBox>
  <mx:HBox>
   <mx:Button label="上传" click="upload();"/>
  </mx:HBox>
 </mx:Panel>
</mx:Application>
 提示:您可以先修改部分代码再运行
服务端, 使用 .net 制作, 看注释就明白,
看不懂的话也没关系只要知道文件上传到 upload 文件夹里就可以了 (要事先创建好), 文件名不变
FileService.aspx
<script language="C#" runat="server"> 
 string uploadFolder = "upload"; // 上传文件夹
 private void Page_Load(object sender, System.EventArgs e)
 {
  HttpFileCollection files = Request.Files;
  
  if (files.Count == 0)
  {
   Response.Write("请勿直接访问本文件");
   Response.End();
  }
  
  string path = Server.MapPath(uploadFolder);
  
  // 只取第 1 个文件
  HttpPostedFile file = files[0];
  
  if (file != null && file.ContentLength > 0)
  { 
   // flash 会自动发送文件名到 Request.Form["fileName"]
   string savePath = path + "/" + Request.Form["fileName"];
   file.SaveAs(savePath);
  }
 }
</script>
 提示:您可以先修改部分代码再运行
控制上传时间和文件大小就得靠这个
其中 maxRequestLength 是最大上传文件大小, 单位是 k, 4096 也就是允许上传 4M 的文件, 这也是默认值
executionTimeout 是上传文件的超时判断, 上传大文件时记得设的大一些
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.web>
  <httpRuntime maxRequestLength="4096" executionTimeout="10000" />
 </system.web>
</configuration>
 提示:您可以先修改部分代码再运行
 
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058