12

所以我有一个看起来像这样的文件系统:

Music
- 001
-- song.mp3
- 002
-- song.mp3
- 003
- 004
- 005
-- song.mp3
musicplayer.html
musicplayer.js

我很好奇是否可以获得所有文件夹名称的列表?

这个javascript,html5,甚至jQuery,我什么都安装不了。

4

4 回答 4

13

他的问题有道理(HTML5)


我很好奇是否可以获得有关所有文件夹名称的列表?这个 javascript,甚至 jQuery,我什么都安装不了

根本没有,但不是最后的答案!

JavaScript (JS) 是一种解释型计算机编程语言。它最初是作为 Web 浏览器的一部分实现的,因此客户端脚本可以与用户交互、控制浏览器、异步通信以及更改显示的文档内容。

JavaScript 有 3 种主要类型,即:

Client-Side JavaScript (CSJS) -- an extended version of JavaScript that enables the enhancement and manipulation of web pages and client browsers

Server-Side JavaScript (SSJS) -- an extended version of JavaScript that enables back-end access to databases, file systems, and servers

Core JavaScript -- the base JavaScript language

客户端 JavaScript (CSJS) 和服务器端 JavaScript (SSJS) 依赖于核心 JavaScript,没有它就无法工作。

JavaScript 和 DOM 为恶意作者提供了通过 Web 传递脚本以在客户端计算机上运行的可能性。浏览器作者使用两个限制来控制这种风险。首先,脚本在沙箱中运行,它们只能执行与 Web 相关的操作,而不是创建文件等通用编程任务。其次,脚本受同源策略的约束:来自一个网站的脚本无法访问发送到另一个站点的用户名、密码或 cookie 等信息。大多数与 JavaScript 相关的安全漏洞都是对同源策略或沙箱的破坏。

通用 JavaScript 的子集 — ADsafe、安全 ECMA 脚本 (SES) — 可提供更高级别的安全性,尤其是在第三方创建的代码(例如广告)上。

我很好奇是否可以获得有关所有文件夹名称的列表?使用HTML5

HTML5 提供了 FileSystem API 可以解决你的渴望,至少知道 :)
在这里阅读教程:http: //www.html5rocks.com/en/tutorials/file/filesystem/


另一种解决方案是使用丑陋的浏览器 Api,我从不推荐
最好的解决方案 是使用像 php 这样的服务器端语言

于 2013-03-21T00:53:13.697 回答
0

您是否正在尝试获取客户端的文件系统?如果是这样,出于安全原因,Web 浏览器通常会禁止此类行为。

如果您尝试在 Web 服务器上列出内容,那么如果没有AJAX ,这将无法完成,因为 JavaScript 在客户端计算机上运行。您需要一些服务器代码来为您列出目录,但这可能会带来潜在的安全风险。

我认为您最好的选择是运行服务器端代码来列出目录,在客户端代码上这样做并不是最安全的事情。

于 2013-03-21T00:47:04.863 回答
0

如果您在客户端询问 Javascript,是的,我们可以使用 File API 在 Mozilla Firefox 中访问,我不知道其他浏览器。

https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O

于 2013-03-21T01:03:29.043 回答
-2

正如@Tariq 所说,您绝对可以使用一些服务器端代码(如 php)来完成此操作。您可以通过 ajax 提交与根目录相关的目录路径(查看 jquery $.post() @ http://api.jquery.com/jQuery.post/)。

<?php
  if (isset($_POST['submit'])) {
  //capture post varibles, sanitizing of course.
  $dir = "";
  $dir = $_POST['input'];

    $dh  = opendir($dir);
    while (false !== ($filename = readdir($dh))) {
      $files[] = $filename;
    }
//now, do stuf with files

    sort($files);
    print_r($files);
  }

?>

这是输出:

Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)

希望这可以帮助。

于 2013-03-21T01:01:42.617 回答