您的位置:首页 > 其它

如何在网页中显示选择文件对话框

2009-09-11 11:13 309 查看
在制作网页时,经常要选择文件并上传,使用传统的InputFile控件,每次只能选择一个文件,甚为不便。如果使用Microsoft的公共对话框组件就方便很多了,它可以一次就选择多个文件,就像QQ空间的相片上传功能一样。如何实现呢?经过多次试验,终于搞掂。

源代码如下:

<!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 它指定忽略共享冲突错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐