dannyr's Blog
ColdFusion Delphi Flex Java .Net —— 一个都不能少!
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 93 文章- 3 评论- 316
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|一个都不能少!
阅读(5579)
评论(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模块
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2006-11-13 12:36 编辑过
Google站内搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
相关文章:
相关链接:
所属分类的其他文章:
Flex2.0文件上传功能(Flex2.0正式版)
关于JSON
Rich Internet Applications 的技术选项
看MacroMedia的逐步消失...
关于Flex、Tomcat、Jrun、ColdFusion、IIS、ASP.Net结合使用的误区!
Flex2.0实现文件上传功能(服务器为ASP.NET)
Flex1.5静态编译为Swf
Flex RemoteObject 简单应用Demo
MACROMEDIA发布FLEX 2系列产品和FLASH PLAYER 8.5
MACROMEDIA发布STUDIO 8及相关产品
最新IT新闻:
Silverlight 2 SDK中文版发布
[译稿]微软将 jQuery IntelliSense整合到Visual Studio
微软:不裁员也不削减研发开支
2008年11月22日科技博客精选
诺基亚将支持Lotus Notes 和黑莓争夺市场
公告
我的联系方式:
MSN dannyr@163.com
QQ 563178
20060606新计数器
Detail
<
2008年3月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
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
31
1
2
3
4
5
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔分类
.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. 任意对象数组ArrayList的排序法(可自定义排序字段、排序方向)(8842)
2. ASP.NET动态加载用户控件的页面生成过程(8732)
3. 征集比较完善的权限管理方案!(最好有C#方案)(6406)
4. 关于上个Flex-Jsp-DB例子中Flex和Jsp传递中文参数问题的解决方法!(Tomcat服务器)(5913)
5. Flex2.0文件上传功能(Flex2.0正式版)(5579)
6. Flex RemoteObject 简单应用Demo(5561)
7. 贴个Flex-Jsp-Mysql简单结合例子(5546)
8. DeKlarit:一个不错的top-down CG工具(4665)
9. Rich Client Fashion(转载)+乱弹(4474)
10. Flex2.0实现文件上传功能(服务器为ASP.NET)(4074)
评论排行榜
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)