(原创)OpenDialog控件在WEB上的应用

本文介绍了如何利用OpenDialog控件解决WEB上FORM文件上传时文件筛选的问题,通过控件设置FILTER,实现上传文件的个性化选择,提高用户体验。但请注意,这种方法仅适用于Windows系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:死在水中的鱼(死鱼)


以前老觉得FORM里的FILE按钮不够完美,因为它没有FILTER,所以一打开窗口就全部文件也给显示出来。于是调用了系统的OpenDialog控件,这样以后写上传文件时就能够的显得个性化了。。但只对WIN系统有用!!!

测试代码如下:直接保存为一个HTM文件即可以看效果
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> OpenDialog控件测试 </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<object id=FileDialog style="left: 0px; TOP: 0px" classid="clsid:f9043c85-f6f2-101a-a3c9-08002b2f49fb" codebase="http://activex.microsoft.com/controls/vb5/comdlg32.cab">
</object>
<input type=button value="打开文件" onclick='OpenFile()'><input type=button value="选择颜色" onclick='OpenColor()'><input type=button value="选择字体" onclick='OpenFont()'>
<div align=left id=App style="border:1 solid #000000;background-color:#FFFFFF;height:300px;overflow:auto;width:100%;z-index:2" contentEditable></div>
<SCRIPT LANGUAGE="VBScript">
'/***************************文件窗口测试****************************************
Sub OpenFile
On Error Resume Next
Dim sFilter
With FileDialog
 .FileName=""
 .DialogTitle="请选择要打开的文件"
 .Flags=4+4096          '打开文件窗口的样式;  4 = 隐藏“只读文件”按钮选项   4096 = 选择的文件必须存在  512 = 可以选择多文件(但窗口样式会改变成旧时系统的窗口样式)
    sFilter="可执行文件(*.exe,com)|*.exe;*.com"
    sFilter=sFilter + "|图片文件(*.jpeg,jpg,gif,png)|*.jpeg;*.jpg;*.gif;*.png;*.bmp"
 sFilter=sFilter + "|所有文件(*.*)|*.*"
 .Filter=sFilter       '打开文件窗口的过滤器
    .CancelError = True
 .ShowOpen             '写成.ShowSave则是显示保存文件的窗口
 If Err.Number<>0 Then
    Err.Clear
    document.all.App.innerText = "你没有选择任何文件"
    Exit Sub
 End If
 document.all.App.innerText= "你选择的文件是:"+.FileName
End With
End Sub
'/***************************颜色窗口测试****************************************
Sub OpenColor
On Error Resume Next
Dim sColor
With FileDialog
    .CancelError = True
 .Flags=2              '1 = 不显示自定义颜色面板  2 = 先显示自定义颜色面板
 .ShowColor
 If Err.Number<>0 Then
    Err.Clear
    document.all.App.innerText = "你没有选择任何颜色"
    document.all.App.style.background="#FFFFFF"
    Exit Sub
 End If
 sColor="#"+Left(StrReverse("000000"+Cstr(Hex(.Color))),6)
 document.all.App.innerHTML= "<font color="+sColor+">你选择的颜色是:"+sColor+"</font>"
End With
End Sub
'/***************************字体窗口测试****************************************
Sub OpenFont
On Error Resume Next
Dim sFont,sColor
With FileDialog
    .CancelError = True
 .Flags=3 + 256
 '1 = 屏幕字体集    2 = 打印机字体集 3 = 包含1,2的字体集  256 = 显示字体效果栏(颜色,下划线,删除线等)
 .ShowFont
 If Err.Number<>0 Then
    Err.Clear
    document.all.App.innerText = "你没有选择任何字体"
    Exit Sub
 End If
 sFont="名称:"+.FontName+" 字体大小:"+Cstr(.FontSize)
 If .FontBold Then
    sFont=sFont+" 粗体:是"
 Else
    sFont=sFont+" 粗体:否"
 End If
 If .FontItalic Then
    sFont=sFont+" 斜体:是"
 Else
    sFont=sFont+" 斜体:否"
 End If
 If .FontStrikeThru Then
    sFont=sFont+" 删除线:是"
 Else
    sFont=sFont+" 删除线:否"
 End If
 If .FontUnderLine Then
    sFont=sFont+" 下划线:是"
 Else
    sFont=sFont+" 下划线:否"
 End If
 sColor="#"+Left(StrReverse("000000"+Cstr(Hex(.Color))),6)
 sFont=sFont+" 字体颜色:"+sColor
 document.all.App.innerText= "你选择的字体是:"+sFont
End With
End Sub
</SCRIPT>
</BODY>
</HTML>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值