如何在html页面中创建目录选择器。
如果我使用输入文件元素,则只能选择文件,但是我需要选择目录。
我需要执行此操作,因为用户应在计算机内选择正确的路径。
有什么解决办法吗?
Answers:
出于安全原因,无法使用纯HTML / JavaScript完成。
选择要上传的文件是您的最佳选择,即使那样,您也无法在现代浏览器中获得其完整的原始路径。
您可能可以使用Java或Flash将某些内容放在一起(例如,使用SWFUpload为基础),但这需要大量工作,并且会带来其他兼容性问题。
另一个想法是打开一个iframe
显示用户C:
驱动器(或其他内容)的显示,但是即使现在有可能(出于安全原因可能被阻止,很长时间没有尝试过),您的网站也无法与iframe通信(再次出于安全原因)。
您需要什么呢?
试试这个,我认为它将为您工作:
<input type="file" webkitdirectory directory multiple/>
您可以在https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3上 找到此示例,如果需要更多信息,可以在此处找到
。
non-standard
。并且它有效地递归上载包含的文件(?),同时公开文件夹名称。这将在大多数情况下适用
如果您是服务器和用户(例如,您正在创建通过浏览器运行的应用程序,并且需要选择一个文件夹),则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上,我将路径值(减去文件名)复制到了隐藏文件夹中。然后,将fileInput框设置为“”。这样就不会上传任何文件。我不记得fileUpload控件的事件。也许在变化。有一阵子了。如果有值,我将解析出文件名,然后将文件夹放回框中。当然,您需要确认该文件为有效文件。这将为您提供客户端工作站文件夹。
但是,如果要反映服务器路径,则需要使用完全不同的编码方法。