是否可以使用javascript从目录中读取文件?

时间:2012-07-04 15:35:53

标签: javascript html

我想读取一个目录并用这些文件的名称填充一个列表。

是否可以使用javascript执行此任务?

6 个答案:

答案 0 :(得分:4)

不,出于安全原因。

您可以通过调用ActiveX或Flash并让用户同意允许从这些插件访问文件系统来实现,但是 - 请不要这样做。

答案 1 :(得分:2)

不,这是不可能的。您是否希望有人阅读您的目录的内容?

更新:我认为使用webkitdirectory属性可能获得的距离最近:

HTML

<input type="file" id="file_input" webkitdirectory="" directory="" />
<div id="list_of_files"></div>
...

JS

var $list = $('#list_of_files');
$('#file_input').change(function(event) {
  var listOfFiles = event.target.files;
  for (var i = 0, l = listOfFiles.length; i < l; ++i) {
     $list.append($('<p>'+ listOfFiles[i].name +'</p>'));
  }
});

...如图所示here。但它仅适用于Chrome(建议使用mozdirectory属性无效)。

答案 2 :(得分:2)

您可以尝试使用FileReader对象,但浏览器支持不足。

答案 3 :(得分:1)

在谷歌浏览器中,您可以提示客户端选择一个目录,然后使用它来列出目录及其子目录中包含的文件:

<input type="file" webkitdirectory onchange="listContents(this.files)">

listContents将是您的实施。

答案 4 :(得分:0)

我不知道你是否正在进行安全研究等等。所以除了说“你不应该这样做”之外,问题的实际答案是,你实际上可以通过利用差的方式阅读文件 - 编写JS代码,这就是为什么你应该编码......防守。

然后就是:http://www.html5rocks.com/en/tutorials/file/dndfiles/

答案 5 :(得分:0)

是的,具体取决于您拥有的浏览器。

即使这不是常见做法,但您可以使用Chrome等某些浏览器(使用webkitRequestFileSystem支持的requestFileSystem)或使用文件系统对象在Internet Explorer中使用。