如何在JavaScript中获取本地PC目录的内容

7
如何在javascript/jQuery中获取本地PC目录的内容?例如从 C:\Images

你可以使用Node.js来实现这个... 使用纯JavaScript / jQuery是不可能的。 - Bruno
可能是使用JavaScript访问本地文件的重复问题。 - Paul Alan Taylor
你的意思是在浏览器中吗?谢天谢地,这是不可能的,除非使用插件,因为这将会侵犯隐私。 - Oded
使用客户端脚本是不可能的。 - David Hellsing
8个回答

26

这仅适用于Google Chrome浏览器:

<input type="file" webkitdirectory>
这将提示用户选择目录,然后您可以访问输入的files属性以查看其中包含的文件。
然后可以使用文件系统 API构建用户选定文件的虚拟沙盒文件系统,并对此虚拟文件系统进行编程访问,就像是通过桌面应用程序访问真实文件系统一样。
因为这将成为一个重大安全问题,所以没有其他方法可行。
在谷歌浏览器中的工作演示: http://jsfiddle.net/JwgqC/

是的,非常有用,例如媒体播放器应用程序可以选择音乐文件夹,然后构建播放列表。 - Esailija
虚拟的、沙盒化的文件系统... 我猜就不会有刷新了吧? - Gordon Sun
Firefox现在部分支持此功能:https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API/Firefox_support - Gaurav

2

1

现在,几年过去了,在Chrome中访问本地文件功能良好 并且 Firefox 中也可以使用(52.8版本,但更新Firefox很容易)。它还可以在IE 11中使用。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>files</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
</head>
<body>
<script>
// Check for the various File API support.
if (window.File && window.FileReader && window.FileList && window.Blob) {
  // Great success! All the File APIs are supported.
} else {
  alert('The File APIs are not fully supported in this browser.');
}
</script>
</body>
</html>

1
由于安全原因,Javascript/Jquery无法访问本地文件系统。这是不可能的。因此,请尝试使用一些服务器端代码。

0

您可以使用像PHP、Ruby、Java这样的技术编写脚本,列出所有文件,然后通过Ajax将此信息发送到您的浏览器。

但是,由于安全限制,您无法仅使用JavaScript完成此操作。


0

我认为这是不可能的,因为访问本地文件系统会带来严重的安全风险。


0

Javascript无法访问用户的驱动器。那将是一个很大的安全问题,不是吗?:D

相反,您需要使用其他技术,如Flash或Java小程序。


Flash也不能无提示地访问本地文件系统,但如果Java小程序被签名(1年499美元),并且用户接受了它,Java小程序就可以访问本地文件系统。 - Esailija

0

从浏览器访问本地文件系统是不可能的,这也是好事!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接