javascript 选择文件夹对话框(web)

 更新时间:2009年07月07日 16:50:29   作者:  
web程序开发中经常会遇见选择文件夹的时候,这对于web程序员是一件麻烦的事情,由于本地安全限制JS不能访问本地文件,所以选择文件夹一般都避而不谈,笔者在写一个程序的时候也遇见了同样的问题,开始尝试使用JS来遍历文件,结果都没有成功
没有办法,实践证明最好的解决办法是自己写一个OCX控件,这样就只要注册一下OCX控件就可以了,同时OCX控件的可扩展性非常大,也就是给vc\delphi这些程序的功能引入到web中,其功能可想而知!
这里不说明OCX开发的过程了,给自己写的OCX控件共享一下,希望能给一些朋友提供帮助。
这个OCX控件中提供了一个getFiles()方法,只要获取控件对象,然后调用getFiles()方法就可以获取对应路径下的所有文件,如下图:
OCX控件
该控件可以选择任意盘符下的任意文件夹,图中最下面的按钮时web中的input,通过web中的js方法来获取文件列表,OCX
的getFiles()方法返回文件名串,样式如1.jpg;2.jpg;3.jpg,每个文件名中间用“;”链接,在js中使用split方法来分离一下就可以了。
页面代码如下:
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript"><!--
function show(){
var obj=document.getElementById("pathOcx");
var str=obj.getFiles();
var list=str.split(";");
for(var i=0;i<list.length;i++){
if(list[i]!=""){
alert(list[i]);
    }
}
}
// --></script>
</head>

<body>
<OBJECT
id="pathOcx"
     classid="clsid:13BF0862-063C-432F-A8DF-07C2823E8562"
     width=420
     height=300
     align=center
     hspace=0
     vspace=0
>
</OBJECT>
<br>
<input type="button" name="Submit" value="显示数据" onClick="show()">
</body>
</html>

这样就可以使用该控件选取任意文件夹了,并且可以通过js获取文件夹中的所有内容,由于篇幅有限,这里不对该OCX更多的功能做说明,下篇准备给OCX增加上传功能,这样既可以上传整个文件夹,而且支持断点续传。

最后注明:OCX使用的时候需要注册控件

注册方法:运行cmd,进入比如OCX控件在C:\123.OCX,在cmd中运行RegSvr32   c:\123.OCX,会提示注册成功,然后就可以在网页中使用了!
打包下载

相关文章

  • 使用JavaScript实现实时搜索建议功能

    使用JavaScript实现实时搜索建议功能

    在我们的技术旅程中,JavaScript 无疑是一个不可或缺的伙伴,这篇文章主要为大家详细介绍了如何使用 JavaScript 来实现一个复杂功能,即实时搜索建议,感兴趣的可以了解下
    2024-02-02
  • JavaScript的parseInt 取整使用

    JavaScript的parseInt 取整使用

    JavaScript 是弱类型语言, 为了保证数值的有效性, 在处理数值的时候, 我们可以对数值字符串进行强行转换. 如 parseInt 取整和 parseFloat 取浮点数
    2011-05-05
  • Echarts读取动态数据完整代码

    Echarts读取动态数据完整代码

    这篇文章主要给大家介绍了关于Echarts读取动态数据的相关资料,使用Echarts画图时,数据一般不是静态写死的,而是通过后端接口动态获取的,需要的朋友可以参考下
    2023-10-10
  • 微信js-sdk上传与下载图片接口用法示例

    微信js-sdk上传与下载图片接口用法示例

    这篇文章主要介绍了微信js-sdk上传与下载图片接口用法,结合实例形式分析了基于上传图片接口(uploadImage)和下载图片接口(downloadImage)针对图片操作的相关技巧,需要的朋友可以参考下
    2016-10-10
  • Layui实现多条件查询的示例代码

    Layui实现多条件查询的示例代码

    本文主要介绍了Layui实现多条件查询,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 浅谈函数调用的不同方式,以及this的指向

    浅谈函数调用的不同方式,以及this的指向

    下面小编就为大家带来一篇浅谈函数调用的不同方式,以及this的指向。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • JS 俄罗斯方块完美注释版代码

    JS 俄罗斯方块完美注释版代码

    JS俄罗斯方块完美注释版 v 1.01 从学c语言那一会儿都想写一个俄罗斯方块,可是每次动起手总觉得难度太大. 今天终于用了大约4个小时写出来了. 其中在涉及到方块变型的时候还咨询了
    2008-11-11
  • avalonjs制作响应式瀑布流特效

    avalonjs制作响应式瀑布流特效

    瀑布流主要应用在图片展示页面上。如果有一大批图片需要展示,原始图片尺寸不一致,又希望每张图片都能不剪裁,完整显示,那么就要给图片规定一个宽度,解放它们的高度。利用网页高度不限这个特性,充分利用页面的空间,尽可能的展示多的图片。下面我们就来详细探讨下
    2015-05-05
  • 详解JavaScript基于面向对象之创建对象(2)

    详解JavaScript基于面向对象之创建对象(2)

    这篇文章主要介绍了JavaScript基于面向对象之创建对象,详细的分析面向对象的原型方式以及其他综合的方式,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 浅析JS运动

    浅析JS运动

    这篇文章主要介绍了JS运动的实现原理,介绍了JS多种运动方式,希望大家仔细学习,感兴趣的小伙伴们可以参考一下
    2015-12-12

最新评论