在javascript中是否可以在IE中读取本地文件?
FileReader允许在Chrome中读取本地文件在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) {
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();
}
}