论坛首页 编程语言技术论坛

谈一下web中选择文件夹

浏览 7189 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2009-07-07  
C++

 

         web程序开发中经常会遇见选择文件夹的时候,这对于web程序员是一件麻烦的事情,由于本地安全限制JS不能访问本地文件,所以选择文件夹一般都避而不谈,笔者在写一个程序的时候也遇见了同样的问题,开始尝试使用JS来遍历文件,结果都没有成功,没有办法,实践证明最好的解决办法是自己写一个OCX控件,这样就只要注册一下OCX控件就可以了,同时OCX控件的可扩展性非常大,也就是给vc\delphi这些程序的功能引入到web中,其功能可想而知!

    这里不说明OCX开发的过程了,给自己写的OCX控件共享一下,希望能给一些朋友提供帮助。

    这个OCX控件中提供了一个getFiles()方法,只要获取控件对象,然后调用getFiles()方法就可以获取对应路径下的所有文件,如下图:

   

 

该控件可以选择任意盘符下的任意文件夹,图中最下面的按钮时web中的input,通过web中的js方法来获取文件列表,OCX

的getFiles()方法返回文件名串,样式如1.jpg;2.jpg;3.jpg,每个文件名中间用“;”链接,在js中使用split方法来分离一下就可以了。

页面代码如下:

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

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

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

点此下载该控件

  • 大小: 28 KB
  • 大小: 4.2 KB
   发表时间:2009-10-15  
lz说说开发ocx的过程吧。 我对这个比较感兴趣。
0 请登录后投票
   发表时间:2009-10-15  
可以详细介绍一下 js 兼容性  和浏览器 版本 的兼容性么?
0 请登录后投票
   发表时间:2009-10-17  
zzsczz 写道
可以详细介绍一下 js 兼容性  和浏览器 版本 的兼容性么?

OCX对浏览器到版本没有太多要求,调用var obj=document.getElementById("pathOcx"); 这里使用的是IE的getElementById方法,在其他的浏览器中可以使用getElementsByTag,同样可以!
0 请登录后投票
   发表时间:2009-11-05  
erikchang 写道

 

         web程序开发中经常会遇见选择文件夹的时候,这对于web程序员是一件麻烦的事情,由于本地安全限制JS不能访问本地文件,所以选择文件夹一般都避而不谈,笔者在写一个程序的时候也遇见了同样的问题,开始尝试使用JS来遍历文件,结果都没有成功,没有办法,实践证明最好的解决办法是自己写一个OCX控件,这样就只要注册一下OCX控件就可以了,同时OCX控件的可扩展性非常大,也就是给vc\delphi这些程序的功能引入到web中,其功能可想而知!

    这里不说明OCX开发的过程了,给自己写的OCX控件共享一下,希望能给一些朋友提供帮助。

    这个OCX控件中提供了一个getFiles()方法,只要获取控件对象,然后调用getFiles()方法就可以获取对应路径下的所有文件,如下图:

   

 

该控件可以选择任意盘符下的任意文件夹,图中最下面的按钮时web中的input,通过web中的js方法来获取文件列表,OCX

的getFiles()方法返回文件名串,样式如1.jpg;2.jpg;3.jpg,每个文件名中间用“;”链接,在js中使用split方法来分离一下就可以了。

页面代码如下:

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

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

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

点此下载该控件

 

0 请登录后投票
   发表时间:2009-11-05  
windows dna结构( Windows Distributed interNet Applications Architecture) 有过介绍

这样做要处理的问题:
1 开发工具的bug...最好只用api,然后啃 msdn  疯狂测试,copy and paste 的代码基本不会有什么问题。要是使用类库(atl/mfc/vcl/vb)的话,将会引入更多问题(文挡齐全否? 工具向导如何操作?),如果win32 api和c 不熟悉,基本没有办法跨越所有的地雷。

2 界面的样式。win32工具的界面要想换皮肤的话   怎么办 ?


在ms的地盘上还是跟着ms走,winform代替ocx可以简化开发的难度。。。。。。
0 请登录后投票
   发表时间:2010-05-17  
OCX可以在用户端调用本地文件夹吗?  是需要安装OCX控件后还是怎么??
0 请登录后投票
   发表时间:2010-05-17   最后修改:2010-05-17
tpm_athrun 写道
OCX可以在用户端调用本地文件夹吗?  是需要安装OCX控件后还是怎么??



浏览服务器端就是写个server端的com呗,
想写个自己特殊的客户端browse,就写个activex.
写这东西,王道是vb.
0 请登录后投票
   发表时间:2010-05-18  
[quote="ray_linn浏览服务器端就是写个server端的com呗,
想写个自己特殊的客户端browse,就写个activex.
写这东西,王道是vb.

可惜VB还不怎么会!
0 请登录后投票
   发表时间:2010-05-18  
OCX技术在某些时候还是必须的,尤其是安全需求到一定程度,比如淘宝网站登录的密码输入就是使用了OCX技术,一般要求安全的数据输入都可以使用这个东西,因为任何浏览器都不可能记录OCX中输入的数据!
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics