2011-03-16 36 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。

相關問題