当前位置: 首页 > 编程日记 > 正文

【推荐】Flex+asp.net上传文件

前台Flex文件:UploadSample.mxml,其代码如下所示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 3     <mx:Style>
 4         global 
 5         {
 6             fontSize : 12;
 7         }
 8     </mx:Style>
 9     
10     <mx:Script>
11         <![CDATA[
12             // 先搞 1 个 FileReference
13             private var file:FileReference = new FileReference();
14             
15             // 上传状态指示, 和下面的文本框绑定
16             [Bindable]
17             private var stateText:String = "请选择一个文件上传";
18             
19             // createChildren 比 creationComplete 事件更早发生, 省的注册事件侦听, 直接在这里写了
20             protected override function createChildren():void 
21             {
22                 super.createChildren();
23                 file.addEventListener(Event.SELECT, file_select);
24                 //file.addEventListener(Event.COMPLETE, file_complete);
25                 file.addEventListener(ProgressEvent.PROGRESS, file_progress);
26                 file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, file_complete);
27             }
28             
29             // 选择 1 个文件的事件
30             private function file_select (e:Event):void 
31             {
32                 stateText = "选择了文件 " + file.name;
33             }
34             
35             // 上传完毕后的事件
36             private function file_complete (e:Event):void 
37             {
38                 stateText = "上传完毕";
39             }
40             
41             private function file_progress (e:ProgressEvent):void 
42             {
43                 stateText = "已上传 " + Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%";
44             }
45             // 先判断一下文件大小, 再上传, FileService.aspx 就是上传地址
46             private function upload ():void 
47             {
48                 if (file.size > 0) 
49                 {
50                     stateText = "正在上传 " + file.name;
51                     var request:URLRequest = 
52                         new URLRequest("http://localhost:1851/WebSite1/FileService.aspx");
53                     file.upload(request);
54                 }
55             }
56             
57             
58         ]]>
59     </mx:Script>
60     
61     <mx:Panel width="250" height="112" layout="vertical" title="上传示例"
62         verticalAlign="middle" horizontalAlign="center" >
63         <mx:HBox>
64             <mx:TextInput text="{stateText}" width="160" editable="false"/>
65             <mx:Button label="浏览" click="file.browse();"/>
66         </mx:HBox>
67         <mx:HBox>
68             <mx:Button label="上传" click="upload();"/>
69         </mx:HBox>
70     </mx:Panel>
71 </mx:Application>
72 

服务器端asp.net文件:FileService.aspx.cs,其代码如下所示:

 1 using System;
 2 using System.Data;
 3 using System.Configuration;
 4 using System.Collections;
 5 using System.Web;
 6 using System.Web.Security;
 7 using System.Web.UI;
 8 using System.Web.UI.WebControls;
 9 using System.Web.UI.WebControls.WebParts;
10 using System.Web.UI.HtmlControls;
11 
12 public partial class FileService : System.Web.UI.Page
13 {
14     protected void Page_Load(object sender, EventArgs e)
15     {
16         string uploadFolder = "upload"// 上传文件夹
17 
18         HttpFileCollection files = Request.Files;
19 
20         if (files.Count == 0)
21         {
22             Response.Write("请勿直接访问本文件");
23             Response.End();
24         }
25 
26         string path = Server.MapPath(uploadFolder);
27 
28         // 只取第 1 个文件
29         HttpPostedFile file = files[0];
30 
31         if (file != null && file.ContentLength > 0)
32         {
33             // flash 会自动发送文件名到 Request.Form["fileName"]
34             string savePath = path + "/" + Request.Form["fileName"];
35             file.SaveAs(savePath);
36         }
37     }
38 }

说明:
客户端Flex使用URLRequest对象请求一个服务器端的连接,在服务器端使用HttpFileCollection对象接收客户端的请求。flash 会自动发送文件名到 Request.Form["fileName"]。
效果如下所示:

转自:http://www.cnitblog.com/Lalo/archive/2007/12/28/38199.aspx


改进:增加选择文件类型过滤功能

ExpandedBlockStart.gif代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#15F6F9, #4FD6F8]" fontSize="13" viewSourceURL="srcview/index.html">
    
<mx:Script>
        
<![CDATA[
            
//先搞一个FileReference
            private var file:FileReference=new FileReference();
            
            
//
            
private var imagesFilter:FileFilter = new FileFilter("Images""*.jpg;*.gif;*.png");
            
private var docFilter:FileFilter = new FileFilter("Documents""*.pdf;*.doc;*.txt");
             
            
//上传状态指示,和下面的文本框绑定
            [Bindable]
            
private var stateText:String="请选择一个上传文件";
            
//CreateChilden比CreateComplete更早发生,省得注册事件监听,直接在这里写了
            protected override function createChildren():void
            {
                
super.createChildren();
                file.addEventListener(Event.SELECT,onSelect);
                file.addEventListener(ProgressEvent.PROGRESS,onProgress);
                file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,onComplete);
            }
            
//选择1个文件的事件
            private function onSelect(evt:Event):void
            {
                
//stateText = "选择了文件 " + file.name;
                stateText = file.name;
            }
            
//上传完毕后的事件
            private function onComplete(evt:DataEvent):void
            {
                stateText
="上传完毕";
                
            }
            
//上传进度事件
            private function onProgress(evt:ProgressEvent):void
            {
                stateText
="已上传"+Math.round(100*evt.bytesLoaded/evt.bytesTotal)+"%";
            }
            
//先判断一下文件大小,再上传,FileService.aspx就是上传地址
            private function onUpload():void
            {
                
if(file.size>0)
                {
                    stateText
="正在上传"+file.name;
                    var request:URLRequest
=new URLRequest();
                    request.url
="http://localhost:5233/UploadSample/FileService.aspx";
                    file.upload(request);
                    
                }
            }
            
//触发选择文件对话框
            private function onBrower():void
            {
                file.browse([imagesFilter,docFilter]);
            } 
        ]]
>
    
</mx:Script>
    
    
<mx:Panel x="50.5" y="10" width="376" height="168" layout="absolute" title="上传示例:">
        
<mx:HBox x="59" y="33">
            
<mx:TextInput text="{stateText}" editable="false" width="160"/>
            
<mx:Button label="浏 览" click="onBrower();"/>
        
</mx:HBox>
        
<mx:HBox x="131" y="80">
            
<mx:Button label="上 传" click="onUpload();"/>
        
</mx:HBox>
    
</mx:Panel>
    
</mx:Application>

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2010/04/06/1705529.html

相关文章:

Centos查找命令清单

查找目录&#xff1a;find /&#xff08;查找范围&#xff09; -name 查找关键字 -type d查找文件&#xff1a;find /&#xff08;查找范围&#xff09; -name 查找关键字 -print 如果需要更进一步的了解&#xff0c;可以参看Linux的命令详解。 这里摘抄如下&#xff1a; find …

docker 安装使用 solr

目录 1、安装solr 7.5 2、启动solr服务 2.1 创建一个solr库 3、配置IK分词器 4、docker 配置solr登录密码 1、安装solr 7.5 docker solr 官网&#xff1a;https://hub.docker.com/_/solr/ docker pull solr:7.5.0 2、启动solr服务 docker run --name my_solr -d -p 898…

2010中国城市GDP排名

1、上海市 14900.93亿元 8.2&#xff05; 上海 2、北京市 11865.9亿元 10.1% 北京 3、广州市 9118.6亿元 11% 广东1 4、深圳市 8245亿元 10.5% 广东2 5、天津市 7500亿元 16.5% 天津 6、苏州市 7400亿元 11% 江苏1 7、重庆市 5856亿元 14.9% 重庆 8、杭州市 5098.66亿元 10% 浙…

基于wsimport生成代码的客户端

概述 wsimport是jdk自带的命令&#xff0c;可以根据wsdl文档生成客户端中间代码&#xff0c;基于生成的代码编写客户端&#xff0c;可以省很多麻烦。wsimport命令 wsimport的用法 wsimport [options] <WSDL_URI>比较常用的[options]有&#xff1a;1. -d <directory>…

C# Trim 的使用

C# 移除字符 /// <summary> /// 删除指定字符 /// </summary> /// <returns>返回经过修饰的字符串</returns> private string DelChar() { string mess " Test Program "; // 测试字符 if (mess ! string.Empty) …

CSS截取字符串,兼容浏览器

今天在经典论坛看到有同学问到CSS截取字符多余省略号代替的求助且要兼容FF... 这个的确是个比较头痛的问题&#xff0c;现在我在的公司都是程序截取显示省略符的。兼容是没问题&#xff0c;但在中文和数学或字母混排时&#xff0c;就会有点小小的视觉缺陷。在程序截取中&#x…

SQL Server Alwayson 主从数据库账号同步

我们建立了Alwayson后&#xff0c;辅助副本下的数据库是没有相应的账号的&#xff0c;怎么样进行账号的同步呢&#xff1f;怎么在不知道密码的情况下&#xff0c;进行账号的同步设置。 我们可以通过SP--sp_help_revlogin 来实现&#xff0c;此存储过程在主副本上创建了&#xf…

Python 使用 Flask框架记录

Python 使用 Flask框架记录 1、安装Flask ​ Flask依赖两个外部库&#xff0c;Werkzeug和Jinja2&#xff0c;Werkzeug是一个WSGI(服务器网关接口)。Jinja2时负责渲染模板。在安装Flask之前需要安装这俩个外部库&#xff0c;最简单的安装方式是使用Vritualenv创建虚拟环境。 …

java8学习之Lambda表达式深入与流初步

Lambda表达式深入&#xff1a; 在上一次【http://www.cnblogs.com/webor2006/p/8135873.html】中介绍Lambda表达式的作用时&#xff0c;其中说到这点&#xff1a; 如标红处所说&#xff0c;既然Lambda表达式是一个对象&#xff0c;而且必须依附于一类特别的对象类型叫函数式接口…

Javascript与正则表达式个人总结与收录--高级篇

一、正则表达式中的量词 贪婪量词&#xff1a; 先看整个字符串是不是一个匹配。如果没有发现匹配&#xff0c;它去掉最后字符串中的最后一个字符&#xff0c;并再次尝试。如果还是没有发现匹配&#xff0c;那么再次去掉最后一个字符串&#xff0c;这个过程会一直重复直到发现一…

第二十五章 面向对象------封装、内置函数、反射、动态导入

1、封装 什么是封装&#xff1f; 1.对外部隐藏内部的属性&#xff0c;以及实现细节&#xff0c;给外部提供使用的接口 注意&#xff1a;封装有隐藏的意思&#xff0c;但不是单纯的隐藏 学习封装的目的&#xff1a;就是为了能够限制外界对内部数据的访问 python中属性的权限分为…

STL vector list deque区别与实现

1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时&#xff0c;首先分配一个非常大的内存空间预备进行存储&#xff0c;即capacituy&#xff08;&#xff09;函数返回的大小&#xff0c;当超过此分配的空间…

pigeon 介绍

https://github.com/dianping/pigeon Pigeon开发指南 Pigeon是一个分布式服务通信框架&#xff08;RPC&#xff09;&#xff0c;在美团点评内部广泛使用&#xff0c;是美团点评最基础的底层框架之一。 主要特色 除了支持spring schema等配置方式&#xff0c;也支持代码annotati…

docker 安装使用 mysql

1、下载mysql镜像 docker pull mysql:5.7 2、运行mysql docker run --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORDXYBB_1314 -d mysql:5.7 参考&#xff1a; https://blog.csdn.net/jiangyu1013/article/details/79958410 https://www.cnblogs.com/limingxie/p/…

国内第一部IT治理综合图书问世

国内第一部全面阐述企业IT治理理念与实践的图书《中国企业的IT治理之道》于2010年3月由清华大学出版社正式出版发行。对国内的企业来说&#xff0c;IT治理并不是一个陌生的词汇。对于什么是IT治理&#xff1f;什么样的治理才是最优的&#xff1f;如何构建最适合企业的IT治理机构…

oracle终止用户会话

1.创建两个测试用户进行实验 执行命令如下&#xff1a; create user test1 identified by 1; create user test2 identified by 1; grant dba to test1; grant dba to test2; 如下图&#xff0c;我创建了两个用户,并授予两个用户dba角色。 2&#xff0c;windows下使用cmd连接or…

正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码......

当我在窗体初始化的时候&#xff0c;调用了一个外部的dill时&#xff0c;它就不知什么原因的 抛出一个“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”的异常,程序就卡掉了,在网上查了查&#xff0c;相关说明如下:.NET2.0中增加…

Nginx在windows下常用命令

cmd 进入Nginx解压目录 执行以下命令 start nginx : 启动nginx服务 nginx -s reload &#xff1a;修改配置后重新加载生效 nginx -s reopen &#xff1a;重新打开日志文件nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确--------------------- 验证配置是否正确: n…

微信小程序使用npm 进行下载构建组价

1、进入小程序根目录 构建前微信小程序目录 使用npm 初始化命令进行初始化小程序目录 npm init -y 构建后的目录为 构建完成后 如何进行使用 {"usingComponents": {"van-notice-bar": "/miniprogram_npm/vant-weapp/notice-bar/index"} }如果提…

CorelDRAW快捷键搜集

02. 将CorelDRAW中的标准工具列除去,标准工具列比鸡肋还无味,除去可增大可视面积.03. CorelDARW 9 的段落文字并非不能转成曲线,方法并不止一种,可到Google搜索相关方法.04. 熟练使用CorelDARW 9 中的F2/F3/F4 比按放大镜爽又能节约相当多的时间05. CorelDARW 9 中Altaa是个相当…

spring cloud微服务治理eureka、hystrix、zuul代码例子

spring cloud微服务中台服务代码例子&#xff0c;包括eureka、hystrix、zuul https://github.com/birdstudiocn/spring-cloud-sample/tree/master转载于:https://www.cnblogs.com/birdstudio/p/10899923.html

CentOS7种搭建FTP服务器

1&#xff0e;安装vsftpd #首先要查看你是否安装vsftp [rootlocalhost /]# rpm -q vsftpd vsftpd-3.0.2-10.el7.x86_64 &#xff08;显示也就安装成功了&#xff01;&#xff09; #如果没有则安装vsftpd [rootlocalhost/]# yum install -y vsftpd #完成后再检查一…

ssm 实现房屋租赁系统

目录 1、系统功能 2、系统使用技术 3、系统截图 4、代码截图 5、下载地址&#xff1a;https://download.csdn.net/download/huyande123/14039462 1、系统功能 该系统有两类用户 管理员以及普通用户&#xff0c;普通用户注册、用户登录退出、房源信息增删改查、租赁合同信…

成长之第一次面试

遥远地记得,近两年前的第一次面试. 虽然并不愉快,但是,往往第一次,总让人印象深刻. 我记得当时是ebay来学校招聘,兴致勃勃地跑去参加了笔试,本以为自己直接酱油的,结果竟然很幸运地通过了笔试. 还记得笔试是全英文的吧,自己的英语从进入大学开始,就有够烂的,但还是很幸运的进入…

配置GRE隧道

一、拓扑图&#xff1a;二、配置及说明&#xff1a;1、配置三台路由器的IP地址。并且在R1和R3配置默认路由&#xff0c;确保广域网链路能够通信&#xff1a;R1(config-line)#int s1/1R1(config-if)#no shR1(config-if)#ip add 202.101.172.37 255.255.255.252R1(config-if)#int…

【案例】城市地址三级联动

注意点&#xff1a; 1、<option value""></option> value值的设置 2、select的onchange事件 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>城市地址三级联动</title&…

python 更新pip 失败问题总结

1、报pip 8.1.1 Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr Successfully installed pip-8.1.1 You are using pip version 8.1.1, however version 19.1.1 is available. 如下 sudo pip install --upgrade pip The directory /ho…

[转]关于MyEclipse下的项目无法使用BASE64Encoder问题的解决办法

【链接】 http://blog.csdn.net/longlonglongchaoshen/article/details/75087616转载于:https://www.cnblogs.com/eager/p/8202900.html

携号转网:欢迎比阻挠更为有效

千呼万唤之后&#xff0c;携号转网已经在天津和海南两个试点地区“成功”实施。就在全国其他各地老百姓也翘首以待希望能“自由携号、自主转网”之时&#xff0c;见诸于报端的却都是运营商阻碍用户转网的种种“手段”&#xff0c;甚至大打出手、阴招不断&#xff0c;给携号转网…

一些大数库简介

为了解决大数运算的问题&#xff0c;世界各国的软件开发人员和研究学者都进行了很多的研究和实践。近年来&#xff0c;越来越多的开发人员开始重视软件工程的作用&#xff0c;为了减少重复劳动&#xff0c;提高软件的质量和代码复用&#xff0c;许多优秀的大数运算库随之出现。…