Asp.Net技术前瞻--张明Blog
posts - 52, comments - 125, trackbacks - 68, articles - 0
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
File文件控件,选中文件(图片,flash,视频)即立即预览显示
Posted on 2006-11-17 14:39
张明
阅读(329)
评论(1)
编辑
收藏
网摘
所属分类:
ASP.NET2.0
继续总结项目里的一些小TIP,我们平常用file文件控件上传文件,要预览有时会刷新页面,结果file控件被清空,好多人问能能让他不清空或重新赋值,因为处于安全性的考虑,这是不可能的。那怎么进行无刷新预览呢?这里我把我所使用的方法写一下。
选择页面:
<
script language
=
"
javascript
"
>
function checkData()
{
var fileName
=
document.getElementById(
"
FileUp
"
).value;
if
(fileName
==
""
)
return
;
//
检查文件类型
var exName
=
fileName.substr(fileName.lastIndexOf(
"
.
"
)
+
1
).toUpperCase()
if
(exName
==
"
JPG
"
||
exName
==
"
BMP
"
||
exName
==
"
GIF
"
)
{
//
document.getElementById("myimg").src=fileName;
document.getElementById(
"
previewImage
"
).innerHTML
=
'
<img src=\
''
+fileName+
'
\
'
width=100 height=100 >
'
;
}
else
if
(exName
==
"
SWF
"
)
{
document.getElementById(
"
previewImage
"
).innerHTML
=
'
<embed src=\
''
+fileName+
'
\
'
width=\
'
100
\
'
height=\
'
100
\
'
quality=\
'
high\
'
bgcolor=\
'
#f5f5f5\
'
></embed>
'
;
}
else
if
(exName
==
"
WMV
"
||
exName
==
"
MPEG
"
||
exName
==
"
ASF
"
||
exName
==
"
AVI
"
)
{
var strcode
=
'
<embed src=\
''
+fileName+
'
\
'
border=\
'
0
\
'
width=\
'
100
\
'
height=\
'
100
\
'
quality=\
'
high\
'
'
;
strcode
+=
'
autoStart=\
'
1
\
'
playCount=\
'
0
\
'
enableContextMenu=\
'
0
\
'
type=\
'
application
/
x
-
mplayer2\
'
></embed>
'
;
document.getElementById(
"
previewImage
"
).innerHTML
=
strcode;
}
else
{
alert(
"
请选择正确的图片文件
"
);
document.getElementById(
"
FileUp
"
).value
=
""
;
}
}
function openwin()
{
window.open(
"
addPreview.aspx
"
,
""
,
"
height=300,width=345,top=100,left=100
"
);
}
</
script
>
HTML代码:
<
table border
=
"
0
"
cellpadding
=
"
0
"
cellspacing
=
"
0
"
width
=
"
100%
"
height
=
"
100%
"
ID
=
"
Table1
"
>
<
tr
>
<
td width
=
"
255
"
height
=
"
100%
"
valign
=
"
middle
"
>
<
INPUT id
=
"
FileUp
"
style
=
"
WIDTH: 253px; HEIGHT: 22px
"
type
=
"
file
"
size
=
"
23
"
name
=
"
File1
"
runat
=
"
server
"
onchange
=
"
checkData()
"
><
br
>
&
nbsp;
&
nbsp;注:这里可以是图片(jpg或gif格式),flash动画(swf)及视频文件(wmv,mpeg,asf,avi)。大小限定在1M以内。
</
td
>
<
td
>
<
div id
=
"
previewImage
"
>
当前页预览
</
div
>
</
td
>
</
tr
>
</
table
>
弹出预览页面:
<
script language
=
"
javascript
"
>
function getstr()
{
var strcode
=
""
;
var width
=
100
;
var high
=
100
;
if
(self.opener.document.getElementById(
"
FileUp
"
)
!=
null
)
{
//
strcode=self.opener.document.getElementById("previewImage").innerHTML;
width
=
self.opener.document.getElementById(
"
lblWidth
"
).innerText;
high
=
self.opener.document.getElementById(
"
lblHigh
"
).innerText;
var fileName
=
self.opener.document.getElementById(
"
FileUp
"
).value;
var exName
=
fileName.substr(fileName.lastIndexOf(
"
.
"
)
+
1
).toUpperCase()
if
(exName
==
"
JPG
"
||
exName
==
"
BMP
"
||
exName
==
"
GIF
"
)
{
//
document.getElementById("myimg").src=fileName;
strcode
=
'
<img src=\
''
+fileName+
'
\
'
width=
'
+
width
+
'
height=
'
+
high
+
'
>
'
;
}
else
if
(exName
==
"
SWF
"
)
{
strcode
=
'
<embed src=\
''
+fileName+
'
\
'
width=\
''
+width+
'
\
'
height=\
''
+high+
'
\
'
quality=\
'
high\
'
></embed>
'
;
}
else
if
(exName
==
"
WMV
"
||
exName
==
"
MPEG
"
||
exName
==
"
ASF
"
||
exName
==
"
AVI
"
)
{
strcode
=
'
<embed src=\
''
+fileName+
'
\
'
border=\
'
0
\
'
width=\
''
+width+
'
\
'
height=\
''
+high+
'
\
'
quality=\
'
high\
'
'
;
strcode
+=
'
autoStart=\
'
1
\
'
playCount=\
'
0
\
'
enableContextMenu=\
'
0
\
'
type=\
'
application
/
x
-
mplayer2\
'
></embed>
'
;
}
}
if
(self.opener.document.getElementById(
"
txtADCode
"
)
!=
null
)
{
strcode
=
self.opener.document.getElementById(
"
txtADCode
"
).innerHTML;
}
if
(strcode
!=
""
)
{
//
window.alert(fileName);
document.getElementById(
"
showimg
"
).innerHTML
=
strcode;
}
}
</
script
>
显示:
<
div id
=
"
showimg
"
></
div
>
Feedback
#1楼
回复
引用
2007-03-20 16:23 by
11 [未注册用户]
如果想既显示预览又把文件上传到服务端呢?
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
人才
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
Google站内搜索
相关文章:
相关链接:
所属分类的其他文章:
asp.net2.0为DataList和GridView内容项添加序号
Asp.Net2.0下C#环境 Login控件实现用户登录
IFRAME滚动条的样式
asp.net下Split分隔字符串的应用
[原创]Asp.net2.0下(数据库主表,子表)实现TreeView控件的树型目录。
[原创]Asp.net2.0下利用Global.asax全局文件实现流量分析
[原创]Asp.net2.0 VS 2005下的repeater控件本功能分页实例(共有 条记录 共有几页 当前第 页 首页,上一页,下一页,尾页 DropDownList跳转)
File文件控件,选中文件(图片,flash,视频)即立即预览显示
ASP.NET结合存储过程写的通用搜索分页程序
GridView记录删除前的确认窗口
最新IT新闻:
后“开放”平台时代
李彦宏首次表态竞价排名问题:有错能改善莫大焉
杨致远发表博客解释辞职原因
微软公布免费安全软件计划
《时代》:杨致远被Google玩弄于股掌之间?
Powered by:
博客园
Copyright © 张明
与我互动
给我发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(7)
给我留言
查看私人留言
我参与的团队
昆明.NET俱乐部(0/116)
我的标签
存储过程(1)
存储过程返回值(1)
获取存储过程返回值(1)
AjaxControlToolkit(1)
Ajax(1)
AjaxControlToolkit控件集详解(1)
AjaxControlToolkit学习(1)
Asp.Net2.0下C#环境(1)
Login控件实现用户登录(1)
Login控件用法(1)
更多
随笔分类
ADO.NET(4)
Ajax&Altas(6)
ASP.NET1.0(3)
ASP.NET2.0(22)
C#(4)
DataGrid
DropDownList
GridView(4)
Java(1)
JavaScript(3)
Microsoft SQL Server(1)
正则表达式(1)
自娱自乐(3)
我的好友
第一视频在线
提供最新最全的国内外DVD大片高速在线观看
搜夜网|国内最大的夜场门户网
搜夜网,城市门户,web2.0,夜生活,地图,搜夜卡,会员,论坛,地图,积分,打折,商家,点评
积分与排名
积分 - 36895
排名 - 1240
最新随笔
1. asp.net2.0为DataList和GridView内容项添加序号
2. [原创]完美Js(Javascript)代码自动成器
3. 金额转换,把金额转换成为汉字大写金额!
4. 使用存储过程并返回值与及返回值的获得方法
5. AjaxControlToolkit的安装与使用详解
6. 更新公告,本Blog从即日起开始更新,基本保证每天一更,欢迎广大开发者提出宝贵意见
7. Asp.Net2.0下C#环境 Login控件实现用户登录
8. IFRAME滚动条的样式
9. asp.net下Split分隔字符串的应用
10. [原创]Asp.net2.0下(数据库主表,子表)实现TreeView控件的树型目录。
最新评论
1. re: Asp.Net2.0下C#环境 Login控件实现用户登录
谢谢你的代码 解决了我们问题 谢谢你
--wzw200
2. re: Ajax实现无刷新树
也发给我一份AjaxPro好吗?等着急用,谢谢!
--ajun