所以我有一个如下所示的文件系统:
Music
- 001
-- song.mp3
- 002
-- song.mp3
- 003
- 004
- 005
-- song.mp3
musicplayer.html
musicplayer.js
我很好奇是否可以获得所有文件夹名称的列表?
这个javascript,html5,甚至是jQuery,我无法安装任何东西。
答案 0 :(得分:13)
他的问题中有一点(HTML5)
我很好奇是否可以获得有关所有文件夹的列表 名字呢?这个javascript,甚至是jQuery,我无法安装任何东西
根本没有,但不是最后的答案!
JavaScript(JS)是一种解释型计算机编程语言。它最初是作为Web浏览器的一部分实现的,因此客户端脚本可以与用户交互,控制浏览器,异步通信以及更改显示的文档内容
有三种主要类型的JavaScript:
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这样的服务器端语言
答案 1 :(得分:0)
您是否尝试获取客户端的文件系统?如果是这样,出于安全原因,Web浏览器通常会禁止此类行为。
如果您尝试在Web服务器上列出内容,则由于JavaScript在客户端的计算机上运行,因此如果没有AJAX则无法执行此操作。您需要有一些服务器代码才能为您列出目录,但这可能会带来潜在的安全风险。
我认为最好的办法是运行服务器端代码列出目录,在客户端代码上执行此操作并不是最安全的。
答案 2 :(得分:0)
如果您在客户端询问Javascript,是的,我们可以使用File API访问Mozilla Firefox,我不知道其他浏览器。
https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O
答案 3 :(得分:-2)
正如@Tariq所说,你可以用一些服务器端代码(如php)来实现这一目标。你可以通过ajax提交与root相关的目录路径(查看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
)
希望这会有所帮助。