我需要列出javascript中的所有文件,例如“ls”??
答案 0 :(得分:15)
请提供有关您环境的更多信息。
出于安全原因,浏览器中的非特权JavaScript既不能列出文件也不能执行程序。
在node.js中,例如执行程序的工作原理如下:
var spawn = require('child_process').spawn,
var ls = spawn('ls', ['-l']);
ls.stdout.on('data', function (data) {
console.log(data);
});
可以直接列出文件
答案 1 :(得分:5)
您无法使用JS在客户端上运行系统命令,因为它在浏览器沙箱中运行。您需要使用其他一些客户端技术,如Flash,ActiveX或Applet
答案 2 :(得分:2)
AFAIK,您无法运行任何系统命令,这将违反安全模型。您可以发送打印命令,但我想知道除此之外的任何事情。
答案 3 :(得分:2)
node.js中更简单的方法是:
var fs = require('fs');
var ls = fs.readdirSync('/usr');
变量ls
现在包含一个文件名为/ usr的数组。
答案 4 :(得分:1)
简短的回答是 - 你不应该这样做,因为它会对你的应用程序打开一个巨大的攻击向量。想象一下有人跑"rm -rf"
:)。
如果你必须这样做并且你是1000%确定只允许一些不会造成任何伤害的命令,你可以使用Ajax调用服务器页面。该页面可以运行指定的命令并返回响应。我再次强调这是一个巨大的安全风险,最好不要这样做。