dannyr's Blog
ColdFusion Delphi Flex Java .Net —— 一个都不能少!
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 93 文章- 3 评论- 319
Flex2.0文件上传功能(Flex2.0正式版)
简介
:
新的Flex2.0类库里提供了文件类,方便了上传/下载文件。下面的程序demo演示了Flex2.0生成flash来访问本地文件,在flash里上传用户选择的文件到服务器,flash客户端可以处理文件上传进度等多个事件,服务器端是C#写的文件接收模块,把用户上传的文件保存在服务器上。
Demo演示了ProgressEvent.PROGRESS, Event.SELECT 2个事件的处理方法。
顺便提一下关于JSP的接收Flex上传文件的方法(很多网友问过这个问题),我建议使用
Jakarta Commons FileUpload
的文件上传组件,详见:
http://jakarta.apache.org/commons/fileupload/
!
测试效果
:
测试环境
:
操作系统:windows2003 Server
Flex版本:Flex 2.0
Flash版本:
flash
Player 9
WEB服务器:
IIS 6.0
.net
FrameWork 1.1
客户端代码
:FileUpload.mxml
<?
xml version="1.0" encoding="utf-8"
?>
<
mx:Application
xmlns:mx
="http://www.adobe.com/2006/mxml"
xmlns
="*"
creationComplete
="init();"
>
<
mx:Script
>
<![CDATA[
import flash.net.FileReference;
import mx.controls.Alert;
import mx.events.CloseEvent;
import flash.events.*;
private var file: FileReference;
private function init(): void{
Security.allowDomain("*");
file = new FileReference();
file.addEventListener(ProgressEvent.PROGRESS, onProgress);
file.addEventListener(Event.SELECT, onSelect);
}
private function upload(): void{
file.browse();
}
private function onSelect(e: Event): void{
Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?",
"确认上传",
Alert.YES|Alert.NO,
null,
proceedWithUpload);
}
private function onProgress(e: ProgressEvent): void{
lbProgress.text = " 已上传 " + e.bytesLoaded
+ " 字节,共 " + e.bytesTotal + " 字节";
var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
bar.setProgress(proc, 100);
bar.label= "当前进度: " + " " + proc + "%";
}
private function proceedWithUpload(e: CloseEvent): void{
if (e.detail == Alert.YES){
var request: URLRequest = new URLRequest("http://localhost/JZService/WebForm1.aspx");
try {
file.upload(request);
} catch (error:Error) {
trace("上传失败");
}
}
}
]]>
</
mx:Script
>
<
mx:Canvas
width
="100%"
height
="100%"
>
<
mx:VBox
width
="100%"
horizontalAlign
="center"
>
<
mx:Label
id
="lbProgress"
text
="上传"
/>
<
mx:ProgressBar
id
="bar"
labelPlacement
="bottom"
themeColor
="#F20D7A"
minimum
="0"
visible
="true"
maximum
="100"
label
="当前进度: 0%"
direction
="right"
mode
="manual"
width
="200"
/>
<
mx:Button
label
="上传文件"
click
="upload();"
/>
</
mx:VBox
>
</
mx:Canvas
>
</
mx:Application
>
服务端代码
:WebForm1.aspx
private
void
Page_Load(
object
sender, EventArgs e)
{
//
在此处放置用户代码以初始化页面
HttpFileCollection uploadedFiles
=
Request.Files;
string
Path
=
Server.MapPath(
"
data
"
);
for
(
int
i
=
0
; i
<
uploadedFiles.Count ; i
++
)
{
HttpPostedFile F
=
uploadedFiles[i];
if
(uploadedFiles[i]
!=
null
&&
F.ContentLength
>
0
)
{
string
newName
=
F.FileName.Substring(F.FileName.LastIndexOf(
"
\\
"
)
+
1
);
F.SaveAs(Path
+
"
/
"
+
newName);
}
}
}
posted @ 2006-11-13 12:02
dannyr|一个都不能少!
阅读(6427)
评论(10)
编辑
收藏
所属分类:
Flex技术
发表评论
回复
引用
查看
#1楼
2006-11-13 13:27 |
anikin
flash实现上传实时进度不难,能不能用Ajax实现?
回复
引用
查看
#2楼
2006-11-13 17:18 |
U2U
Flex真是Flexible
回复
引用
#3楼
2006-11-17 02:29 |
锦瑟[未注册用户]
要用ajax实时显示进度比较困难,除非重写ms默认的那个upload接口
回复
引用
查看
#4楼
[
楼主
]2006-11-17 08:59 |
dannyr|一个都不能少!
Ajax实现上传进度条,网上有很多现成的控件,在google里用"ajax uploadfile"关键字搜索一下,有很多的!!!
回复
引用
查看
#5楼
[
楼主
]2006-11-17 09:05 |
dannyr|一个都不能少!
关键字可以改成:“ajax FileUpload”
回复
引用
#6楼
2007-04-04 13:25 |
x_net[未注册用户]
你好,你有用过Fluorine的remoting吗。能否给个例子关于。NET通过remoting连接flex的,我试了好久没试出来。谢谢
回复
引用
#7楼
2007-10-02 18:46 |
safe6[未注册用户]
金融界英语Blog :
http://safe6.blog.hexun.com/
相册:
http://safe6.photo.hexun.com/
祝福你,天天快乐!
回复
引用
#8楼
2007-11-08 16:37 |
xiaohan[未注册用户]
请教一下,在flex2中能否用display控件实现播放实时视频的功能?比如播放网络摄像机正在监控的内容?谢谢!
回复
引用
#9楼
2008-03-09 21:17 |
zjut12345[未注册用户]
文件名为中文时候有没有试过?
回复
引用
#10楼
2008-06-15 11:55 |
老莫[未注册用户]
AJAX实现也EASY
大文件的实时进度~
用SlickUpload的HttpModule,稍加改动
就能匹配你的Flex模块
刷新评论
切换模板
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
559006
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
19岁天才黑客发布首个iPhone 3GS破解软件
新浪邮箱大本营粉墨登场!Sina.cn开放注册
IE市场份额首次跌破60%
Google App Engine宕机6小时——云的安全在哪里?
微软新推社交网站Windows Live Planet
相关链接:
公告
我的联系方式:
MSN dannyr@163.com
QQ 563178
20060606新计数器
Detail
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔分类
.Net技术(22)
(rss)
C++(9)
(rss)
ColdFusion(5)
(rss)
Delphi(2)
(rss)
DevExpress(1)
(rss)
Flex技术(29)
(rss)
Java(4)
(rss)
Laszlo(9)
(rss)
Spry(9)
(rss)
生活随笔(10)
(rss)
杂项(13)
(rss)
随笔档案
2008年6月 (1)
2008年5月 (2)
2007年9月 (2)
2007年8月 (1)
2007年7月 (3)
2007年1月 (1)
2006年12月 (2)
2006年11月 (1)
2006年10月 (6)
2006年9月 (1)
2006年8月 (4)
2006年7月 (1)
2006年6月 (4)
2006年5月 (4)
2006年4月 (2)
2006年1月 (1)
2005年12月 (1)
2005年11月 (1)
2005年10月 (2)
2005年8月 (1)
2005年7月 (1)
2005年6月 (1)
2005年5月 (1)
2005年4月 (1)
2005年3月 (2)
2005年2月 (1)
2005年1月 (3)
2004年12月 (9)
2004年11月 (9)
2004年10月 (9)
2004年9月 (3)
2004年8月 (2)
2004年7月 (6)
2004年6月 (4)
文章分类
ColdFusion
(rss)
Flex技术(3)
(rss)
文章档案
2004年6月 (3)
我的链接
Trademan
(rss)
www.k-zone.cn
(rss)
呼呼堂
(rss)
牛皮糖
(rss)
最新评论
1. re: 贴个Jsp里嵌入Flex的例子
web xml 中加入: <jsp-config> <taglib> <taglib-uri>FlexTagLib</taglib-uri> <t... (aaa1421)
2. re: 贴个Jsp里嵌入Flex的例子
您好,flex标签是不是需要什么文件才能在jsp中嵌入mxml代码啊?能发一个给我么,我的邮箱az235@sina.com (az235)
3. re: 安装.Net的痛苦经历!
关键的地方居然一句话带过了:实在是。。
我把Net FrameWork 1.1 Configuration所有的设置胡乱的搞了一通,竟然Pass了 (孤剑)
4. re: 贴个Jsp里嵌入Flex的例子
你好,我实验了以下,怎么也找不到FlexTagLib,需要的jar文件能发给我一下吗?
lofersjj@163.com,谢谢! (hefeng)
5. re: TCP穿透NAT的C++版
这个也可以写出来吗?老兄来点实际的行不行, (nn)
阅读排行榜
1. 任意对象数组ArrayList的排序法(可自定义排序字段、排序方向)(9858)
2. ASP.NET动态加载用户控件的页面生成过程(9369)
3. Flex RemoteObject 简单应用Demo(7711)
4. 征集比较完善的权限管理方案!(最好有C#方案)(7072)
5. Flex2.0文件上传功能(Flex2.0正式版)(6427)
6. 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)(6374)
7. 贴个Flex-Jsp-Mysql简单结合例子(5772)
8. DeKlarit:一个不错的top-down CG工具(4824)
9. Rich Client Fashion(转载)+乱弹(4527)
10. Flex2.0实现文件上传功能(服务器为ASP.NET)(4206)
评论排行榜
1. DeKlarit:一个不错的top-down CG工具(24)
2. 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)(17)
3. Flex2.0实现文件上传功能(服务器为ASP.NET)(17)
4. 如何关闭子线程?征集析构函数与多线程的讨论!(16)
5. 神影无踪-廖添丁FlashGame(15)
6. 征集比较完善的权限管理方案!(最好有C#方案)(13)
7. 贴个Flex-Jsp-Mysql简单结合例子(11)
8. ASP.NET动态加载用户控件的页面生成过程(11)
9. 体验 Delphi2005's ECO II 空间技术(10)
10. Flex2.0文件上传功能(Flex2.0正式版)(10)