在javascript中是否可以在IE中读取本地文件?

在javascript中是否可以在IE中读取本地文件?,javascript,html,internet-explorer,internet-explorer-9,Javascript,Html,Internet Explorer,Internet Explorer 9,FileReader允许在Chrome中读取本地文件 function readMultipleFiles(evt) { var files = evt.target.files; if (files) { for (var i = 0, f; f = files[i]; i++) { var r = new FileReader(); r.onload = (function (f) {

FileReader允许在Chrome中读取本地文件

function readMultipleFiles(evt) {
    var files = evt.target.files;

    if (files) {
        for (var i = 0, f; f = files[i]; i++) {
            var r = new FileReader();
            r.onload = (function (f) {
                return function (e) {
                    var contents = e.target.result;
                    document.getElementById("output").innerHTML = contents;
                };
            })(f);
            r.readAsText(f);
        }
    } else {
        alert("Failed to load files");
    }
}
document.getElementById('fileinput').addEventListener('change', readMultipleFiles, false);​

但此示例在Internet Explorer 9中不起作用。
IE9支持文件API吗?
如果是-我应该怎么做才能读取IE9中的本地文件

IE9支持文件API吗

如果是-我应该怎么做才能读取IE9中的本地文件


你是说如果没有?如果是这样的话,您可以使用ActiveX,或者只是通知用户您网站的此功能在他的浏览器上不受支持,并允许他将文件上载到服务器。

如果您使用超文本应用程序(.hta),您将能够创建ActiveX对象
FileSystemObject
,这将允许您访问本地文件系统。

通常不会。读取本地文件是一种严重的安全违规行为

您可以使用


似乎
FileSystemObject
像一个隐藏的怪物

var fso, file, fileName = '/file.txt', fileContents = '';
if (fileName) {
    fso = new ActiveXObject('Scripting.FileSystemObject');
    // don't worry about 'camelCase' typing, works both
    if (fso.fileExists(fileName)) {
        file = fso.openTextFile(fileName, 1);
        fileContents = file.readAll();
        // or loop over lines
        // while (!file.atEndOfStream) {
        //     fileContents += file.readLine();
        // }
        file.close();
    }
}

更多信息:

谢谢您的链接。我现在确实想使用ActiveX。我需要这个功能的本地应用程序,将由我们的团队只使用。所以我可以说我的应用程序与Chrome和Mozilla兼容。
var fso, file, fileName = '/file.txt', fileContents = '';
if (fileName) {
    fso = new ActiveXObject('Scripting.FileSystemObject');
    // don't worry about 'camelCase' typing, works both
    if (fso.fileExists(fileName)) {
        file = fso.openTextFile(fileName, 1);
        fileContents = file.readAll();
        // or loop over lines
        // while (!file.atEndOfStream) {
        //     fileContents += file.readLine();
        // }
        file.close();
    }
}