在HTML页面的目录select器
如何在HTML页面中创build一个目录select器。
如果我使用input文件元素,我只能select文件,但我需要select目录。
我需要这样做,因为用户应该在他的电脑里select一个正确的path。
任何解决scheme
出于安全原因,无法在纯HTML / JavaScript中完成。
select一个file upload是最好的,即使这样你就不会在现代浏览器中获得完整的原始path。
您可以使用Java或Flash(例如,使用SWFUpload作为基础)将某些东西放在一起,但是这有很多工作,并带来了额外的兼容性问题。
另一个想法是打开一个显示用户的C:
驱动器(或其他)的iframe
,但即使现在有可能(可能由于安全原因而被阻止,很久没有尝试过),您的网站将无法进行通信与iframe(再次出于安全原因)。
你需要什么?
试试这个,我想它会适合你:
<input type="file" webkitdirectory directory multiple/>
你可以在https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3find这个演示,如果你需要更多的信息,你可以在这里find它。;
脚本是不可避免的。
这不是由于安全风险而提供的。 <input type='file' />
最接近,但不是你要找的。
检出这个使用Javascript实现你想要的例子 。
如果操作系统是Windows,则可以使用VB脚本访问核心控制文件以浏览文件夹。
如果你是服务器和用户(例如,你正在创build一个通过浏览器工作的应用程序,你需要select一个文件夹),然后尝试从浏览器中点击某个button时从服务器调用JFileChooser
JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle("select folder"); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false);
这段代码是从这里开始的
我做了一个工作。 我有一个隐藏的文本框来保存值。 然后,在form_onsubmit上,我复制了path值,而不是文件名到隐藏文件夹。 然后,将fileInput框设置为“”。 这样,没有file upload。 我不记得fileUpload控件的事件。 也许在换。 有一阵子了。 如果有值,我parsing掉文件名并把文件夹放回盒子。 当然,你会validation该文件是一个有效的文件。 这会给你的客户端工作站文件夹。
但是,如果要反映服务器path,则需要完全不同的编码方法。