我想在jsp中实现 点击浏览按钮可以浏览本地磁盘目录,类似安装文件时选择目标地,不是file文本域

解决方案 »

  1.   

    首先,jsp语言本身是服务端语言,和本地磁盘目录根本没有任何关系。用jsp去访问本地磁盘是“驴头不对马嘴”的问题,请楼主恶补一下jsp、servlet基础。
    其次,如果用客户端脚本语言(js之类的)也无法实现,因为客户端脚本语言规范本身为了安全性,不允许以自定义的方式直接访问本地任何资源(cookie之类有严格访问规定的除外),只能通过浏览器file控件去访问本地磁盘(而且不允许初始化访问路径,想想这是为什么?)
    所以你的这个需求从根本上来讲是无法实现的,除非你安装了客户端插件,那其实等于安装了桌面程序,和浏览器就无关了。
    记住,一切为了安全性。
      

  2.   

    可以直接装个Apache服务器,把路径设置为你想公开的磁盘路径,配置中开启目录访问即可。Tomcat应该也有类似能力,记不清了。
    并不清楚楼主的意图是什么,但是:
    1、要注意安全性,你这样直接暴露磁盘的做法很危险;
    2、有大把做文件共享的工具,比如FTPServer、SMBServer之类的,比你用Tomcat去做这事情,高效多了。
      

  3.   

    楼主这个“浏览按钮可以浏览本地磁盘目录”是指哪个本地,客户端本地还是服务器本地?觉得楼主是不是只要一个文件上传的功能啊?可以浏览本地文件,选择要上传的文件。<input type="file" name="file" id="file">
      

  4.   

    我在做一个基于c/s的系统,其中有个功能就是要备份数据库,是需要将数据库备份至所选的磁盘目录下,file只是选择本地文件,而我是要选择磁盘目录
      

  5.   

    C/S 系统跟JSP有毛的关系啊,这个标题太能误导人了。直接用Swing,里面有个JFileChoose(忘了是不是这个名字了),可以用来选择目录文件。
      

  6.   

    楼主说的就是文件域
    <input type="file" name="file" id="file">
    可以找到本地文件
    这个就类似安装文件时选择目标地文件
    还是你只想或的目录不要文件?
      

  7.   

    我是要获取目录 不是文件 file只能选择文件 我试过了
    我做的是c/s模式的 java web开发,所以肯定需要jsp做页面呈现层滴....
      

  8.   


    如果你想直接用Web页面方式来备份整个目录,这事情Web做不来。
      

  9.   


    不是简单的困难问题,浏览器安全沙箱根本就不允许你的Web页面主动去把搜索本地某个目录,还上传其所有文件基本上你要用ActiveX来解决,不过微软提供了一个 Scripting.FileSystemObject 
    你可以借助它来做一些事情,但是需要设置目标站点为信任域。
      

  10.   


    信任站点这个设置就太简单了吧自己Google下,就在浏览器的选项里面可以配置的。然后再自己Google下Scripting.FileSystemObject的API介绍和Demo,它提供绝大多数操作文件的方法。
      

  11.   

    貌似是跟asp相关的,我做的是java开发
      

  12.   

    跟ASP没有关系我怎么可能在Java论坛整ASP的东西Scripting.FileSystemObject 是个ActiveX控件,用JavaScript进行操作。
    http://showlike.iteye.com/blog/692300http://www.legalsoft.com.cn/docs/419.html最好自己直接去MSDN上学习学习。
      

  13.   

    楼主,你看看我这个笨思路行得通不,但操作起来有点怪,选择文件得到该文件目录下的所有子文件,思路如下:
    1:<input type="file" name="file" id="file">选择一个文件,好像这个方法getAbsolutePath()可以得到一个完整目录加文件名字符串,具体方法查查API;
    2:再用File类的getParentFile()得不当前目录的父目录(即上一级目录);
    3:再用File类的list()方法得到该文件目录下的所有子文件,目录好像也可以拿到,好像要加什么参数之类的,具体查查API;
    4:遍历文件数组,把需要文件写到别的目录。
      

  14.   

    file是必须要选择一个文件的,这样行不通  而我只需要选择目录就可以了
      

  15.   

    楼主我建议你放弃用网页来实现这个功能吧。
    还不如写个桌面程序来实现这个功能。比如swing,可以很轻松的实现。
    你可能会说客户不希望安装客户端程序,但你说的这个功能本身就不是web去实现的(安全性问题,ldh911也反复给你解释了,并不是说web功能弱不能实现你那个需求,而是它的初衷就是以安全性为基础考虑的,不允许直接访问客户的私有资源,你想想,如果web客户端随意就能访问你的本地资源,那你开一个网页岂不是你的隐私暴露无遗!)
    其实浏览器不也是客户端吗?无非它遵循了某些传输和展示标准而已,而不是像C++、C#、java、delphi等等各有各的标准。如果安装active控件,其实和安装swing桌面程序没有区别,swing程序也可以在网页自动下载安装嘛,只不过它没有内嵌到浏览器中。
    楼主,如果你不考虑安全性非要在浏览器中实现这个功能,那你再好好看看ldh911给你的各种建议,应该能够实现。
    我想已经说得够清楚了,再纠结我只能说分配给你任务的领导太不会用人了!
      

  16.   

    thank you very much,你们说的的确有道理,我觉得我也没必要这样做,所以我不会再纠结于此...感谢所有回答我问题的人,谢谢你们..........