2011-03-16 89 views

回答

14

请给出您的环境的更多信息。

出于安全原因,浏览器中的未授权JavaScript既不能列出文件也不能执行程序。

在node.js中例如执行的程序是这样的:

var spawn = require('child_process').spawn, 
var ls = spawn('ls', ['-l']); 
ls.stdout.on('data', function (data) { 
    console.log(data); 
}); 

而且还有一个直接的方式使用readdir()

2

AFAIK,你不能运行任何系统命令,这将违反安全模型。你可以发送打印命令,但我想知道除此之外的任何事情都是可能的。

4

您无法在JS客户端上运行系统命令,因为它在浏览器沙箱内工作。你需要使用一些其他的客户端技术,如Flash,ActiveX或者Applets

1

简短的回答是 - 你不应该这样做,因为它打开了一个巨大的攻击载体对你的应用程序。想象一下有人跑"rm -rf" :)。

如果您必须这样做,并且您确信只允许一些不会造成任何伤害的命令,则可以使用Ajax调用服务器页面。该页面可以运行指定的命令并返回响应。我再次强调这是一个巨大的安全风险,最好不要做。

+0

相关对话:http://stackoverflow.com/questions/41088671/asp-net-c-sharp-mvc-website-how-can-i-mount-a-drive-upon-button-click – gunslingor 2016-12-12 00:44:34

1

更简单的方法中的node.js是列出文件:

var fs = require('fs'); 
var ls = fs.readdirSync('/usr'); 

变量ls现在包含一个数组,其文件名为/ usr。

相关问题