如何从HTML输入类型“文件”或任何其他方式获取文件夹目录?

时间:2012-10-17 20:03:23

标签: html file input directory

所以我有一个类型为"file"的基本表单输入,但是我希望用户能够选择文件夹位置而不是文件。

如何获取此输入以选择文件夹而不是文件,还是有其他方法可以执行此操作?

3 个答案:

答案 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>