如何在网页中显示选择文件对话框
2009-09-11 11:13
309 查看
在制作网页时,经常要选择文件并上传,使用传统的InputFile控件,每次只能选择一个文件,甚为不便。如果使用Microsoft的公共对话框组件就方便很多了,它可以一次就选择多个文件,就像QQ空间的相片上传功能一样。如何实现呢?经过多次试验,终于搞掂。
源代码如下:
至于对话框参数设置,可参考下面说明
打开或保存对话框参数
常数 值 描述
cdlOFNAllowMultiselect &H200 它指定文件名列表框允许多重选择。
运行时,通过按 SHIFT 键以及使用 UP ARROW 和 DOWN ARROW 键可选择多个文件。作完此操作后,FileName 属性就返回一个包含全部所选文件名的字符串。串中各文件名用空格隔开。
cdlOFNCreatePrompt &H2000 当文件不存在时对话框要提示创建文件。该标志自动设置 cdlOFNPathMustExist 和 cdlOFNFileMustExist 标志。
cdlOFNExplorer &H80000 它使用类似资源管理器的打开一个文件的对话框模板。适用于 Windows 95 和 Windows NT 4.0。
CdlOFNExtensionDifferent &H400 它指示返回的文件扩展名与 DefaultExt 属性指定的扩展名不一致。如果 DefaultExt 属性是 Null,或者扩展相匹配,或者没有扩展时,此标志不设置。当关闭对话框时,可以检查这个标志的值。
cdlOFNFileMustExist &H1000 它指定只能输入文件名文本框已经存在的文件名。如果该标志被设置,则当用户输入非法的文件名时,要显示一个警告。该标志自动设置 cdlOFNPathMustExist 标志。
cdlOFNHelpButton &H10 使对话框显示帮助按钮。
cdlOFNHideReadOnly &H4 隐藏只读复选框。
cdlOFNLongNames &H200000 使用长文件名。
cdlOFNNoChangeDir &H8 强制对话框将对话框打开时的目录置成当前目录。
CdlOFNNoDereferenceLinks &H100000 不要间接引用外壳链接(也称作快捷方式)。缺省时,选取外壳链接会引起它被外壳间接引用。
cdlOFNNoLongNames &H40000 无长文件名。
CdlOFNNoReadOnlyReturn &H8000 它指定返回的文件不能具有只读属性,也不能在写保护目录下面。
cdlOFNNoValidate &H100 它指定公共对话框允许返回的文件名中含有非法字符。
cdlOFNOverwritePrompt &H2 使“另存为”对话框当选择的文件已经存在时应产生一个信息框,用户必须确认是否覆盖该文件。
cdlOFNPathMustExist &H800 它指定只能输入有效路径。如果设置该标志,输入非法路径时,应显示一个警告信息。
cdlOFNReadOnly &H1 建立对话框时,只读复选框初始化为选定。该标志也指示对话框关闭时只读复选框的状态。
cdlOFNShareAware &H4000 它指定忽略共享冲突错误。
源代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> 获取硬盘上的所有驱动器,文件夹和文件 </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <mce:script type="text/javascript"><!-- function SaveAs(){ var fileSave = new ActiveXObject("MSComDlg.CommonDialog"); fileSave.CancelError=true; fileSave.Filter = "jpg|*.jpg"; fileSave.FilterIndex = 1; // 必须设置MaxFileSize. 否则出错 fileSave.MaxFileSize = 512; fileSave.flags=0x200|0x80000|0x40000|0x4|0x100|0x200000|0x100; try { fileSave.ShowOpen(); var arr = fileSave.filename.split(//0/); //文件之间用空字符隔开,第一个为目录 var divList = document.getElementById("relt"); var fileList = ""; for(var i=0; i<arr.length; i++) { fileList += arr[i] + "<br>"; } divList.innerHTML = fileList; } catch(err) { } } // --></mce:script> <body> <a href="#" mce_href="#" onclick="return SaveAs()">点击选择文件</a><br> 选择文件列表: <div id="relt"></div> </body> </html>
至于对话框参数设置,可参考下面说明
打开或保存对话框参数
常数 值 描述
cdlOFNAllowMultiselect &H200 它指定文件名列表框允许多重选择。
运行时,通过按 SHIFT 键以及使用 UP ARROW 和 DOWN ARROW 键可选择多个文件。作完此操作后,FileName 属性就返回一个包含全部所选文件名的字符串。串中各文件名用空格隔开。
cdlOFNCreatePrompt &H2000 当文件不存在时对话框要提示创建文件。该标志自动设置 cdlOFNPathMustExist 和 cdlOFNFileMustExist 标志。
cdlOFNExplorer &H80000 它使用类似资源管理器的打开一个文件的对话框模板。适用于 Windows 95 和 Windows NT 4.0。
CdlOFNExtensionDifferent &H400 它指示返回的文件扩展名与 DefaultExt 属性指定的扩展名不一致。如果 DefaultExt 属性是 Null,或者扩展相匹配,或者没有扩展时,此标志不设置。当关闭对话框时,可以检查这个标志的值。
cdlOFNFileMustExist &H1000 它指定只能输入文件名文本框已经存在的文件名。如果该标志被设置,则当用户输入非法的文件名时,要显示一个警告。该标志自动设置 cdlOFNPathMustExist 标志。
cdlOFNHelpButton &H10 使对话框显示帮助按钮。
cdlOFNHideReadOnly &H4 隐藏只读复选框。
cdlOFNLongNames &H200000 使用长文件名。
cdlOFNNoChangeDir &H8 强制对话框将对话框打开时的目录置成当前目录。
CdlOFNNoDereferenceLinks &H100000 不要间接引用外壳链接(也称作快捷方式)。缺省时,选取外壳链接会引起它被外壳间接引用。
cdlOFNNoLongNames &H40000 无长文件名。
CdlOFNNoReadOnlyReturn &H8000 它指定返回的文件不能具有只读属性,也不能在写保护目录下面。
cdlOFNNoValidate &H100 它指定公共对话框允许返回的文件名中含有非法字符。
cdlOFNOverwritePrompt &H2 使“另存为”对话框当选择的文件已经存在时应产生一个信息框,用户必须确认是否覆盖该文件。
cdlOFNPathMustExist &H800 它指定只能输入有效路径。如果设置该标志,输入非法路径时,应显示一个警告信息。
cdlOFNReadOnly &H1 建立对话框时,只读复选框初始化为选定。该标志也指示对话框关闭时只读复选框的状态。
cdlOFNShareAware &H4000 它指定忽略共享冲突错误。
相关文章推荐
- 如何在VBS脚本中显示“选择文件对话框”或“选择目录对话框”
- 如何打开文件对话框并将选择的文件显示在编辑框中?
- VC6 MFC 如何让用户选择颜色并显示在对话框内?
- 打开网页提示:为了保护你的安全,internet explorer已经限制此文件显示只要能访问您 的计算机的活动内容,单击此处查看选项。如何处理
- F5刷新网页时,出现了“如要再次显示该网页,web浏览器需要重新发送你以前提交的信息...要点击重试",如何不让出现这个对话框的解决方案
- 窗体显示/编码设置/开机启动/文件选择与复制/对话框等
- 用WebView访问证书有问题的SSL网页以及在文件关联窗口中选择浏览器后,浏览器如何识别到该连接地址
- 如何直接在网页中显示PDF文件
- 在VC中如何使用对话框让用户选择自己保存文件的路径
- 将txt文档中内容导入到数据库,并且显示一个对话框,提示用户选择文件的位置
- MFC中如何显示颜色选择对话框
- cocos2d-x 解决win32下 从文件对话框选择文件,显示在游戏中乱码的问题
- 如何读取EXCEL 表格文件并使他在WEB网页上显示(使用ASP.NET)
- 上传文件如何在打开对话框中只显示指定后缀的文件
- [Django]静态文件:如何在网页中显示图片,css,js等静态文件
- 项目中在Android.mk文件中根据项目名称选择不同的AndroidManifest.xml文件 && 如何使用系统设定的日期显示格式
- asp.net 浏览按钮 asp.net C# 如何点击按钮弹出选择文件对话框
- C#按键打开文件选择对话框,并把选择好的路径保存/显示到textBox
- 如何用VBA打开选择文件和选择路径的对话框
- 如何解决下载的CHM文件无法显示网页问题