所以我有一个类型为"file"
的基本表单输入,但是我希望用户能够选择文件夹位置而不是文件。
如何获取此输入以选择文件夹而不是文件,还是有其他方法可以执行此操作?
答案 0 :(得分:59)
在这个页面上偶然发现,然后发现只有javascript(没有像ActiveX或Flash这样的插件)这是可能的,但只是在chrome中:
https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3
基本上,他们在文件输入元素“webkitdirectory”上添加了对新属性的支持。您可以像这样使用它:
<input type="file" id="ctrl" webkitdirectory directory multiple/>
它允许您选择目录。对于支持多文件选择但不支持目录选择的浏览器,multiple属性是一个很好的后备。
当您选择目录时,文件可通过控件的dom对象(document.getElementById('ctrl'))获得,就像它们具有multiple属性一样。浏览器以递归方式将所选目录中的所有文件添加到该列表中。
您已经可以添加目录属性,以防它在某个时刻变得标准化(找不到任何相关信息)
答案 1 :(得分:2)
您最有可能使用flash / silverlight / activeX控件。 <input type="file" />
控件无法处理。
如果您不介意用户选择文件作为获取其目录的方法,您可以绑定到该控件的change
事件,然后删除文件名部分并将路径保存在某处 - 但是这和它一样好。
请注意,网页旨在与服务器进行交互。没有关于向远程服务器提供本地目录的“典型”(服务器无法访问它,为什么要求它?);但文件是一种有选择地传递信息的手段。
答案 2 :(得分:2)
虽然这是一个老问题,但这可能对某人有帮助。
我们可以在使用“multiple”
浏览文件时选择多个文件<input type="file" name="datafile" size="40" multiple>