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是否支持File API?
如果是 - 我应该怎么做才能读取IE9中的本地文件?
答案 0 :(得分:3)
您可以使用ActiveX' FileSystemObject.
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
答案 1 :(得分:1)
如果您创建超文本应用程序(.hta),您将能够创建ActiveX对象FileSystemObject
,这将允许您访问本地文件系统。
答案 2 :(得分:1)
一般没有。读取本地文件是一个严重的安全违规。
答案 3 :(得分:0)
IE9是否支持File API?
如果是 - 我该怎么做才能在IE9中读取本地文件?
你的意思是如果没有?如果是这样,那么您可以使用ActiveX或只是告知用户他的浏览器不支持您网站的这一功能,并允许他将文件上传到服务器。
答案 4 :(得分:0)
似乎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();
}
}
更多信息:https://msdn.microsoft.com/en-us/library/314cz14s(v=vs.85).aspx