javascript不用activexobject能否读取文件内容?

to 1楼&2楼:
HTML5的FileReader难道不是么?难道底层也是activexobject?

不能。即使用那个东西,也很难兼容的。

一个浏览器能读取客户端本地文件内容,从安全考虑来看,就是非常可怕的一件事情。还好,没有实现。和这个功能带来的应用功能相比,安全更重要呢。

楼主可以放弃用js读取本地文件,改用flash吧。

flash我不懂,每次用上传的时候都是去搜的,可以在本地判断文件大小。我用的是jquery的uplod插件。可以参考。

HTML5呀,听说很强大,只看过两眼。它在鼠标事件中连本地黏贴板中的内容都可以读呢。不过实现html5的应用范围并不是很广,只有最新的桌面和手机浏览器才支持。

至于底层是不是activexobject实现,这就不能肯定了。可以肯定的是activexobject不是javascript和html的东西,怎么说呢,算是附加上的东西吧,就像flash一样。html将很多这些功能收进去了,比如媒体标签。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-23
1答案是可以的。
2举例如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>

</head>
<script type="text/javascript">
function readFolder(){
var filePath = "d:\\test\\";
var fso = new ActiveXObject("Scripting.FileSystemObject"); //加载控件
var f = fso.GetFolder(filePath);
var underFiles = new Enumerator(f.files); //文件夹下文件
for (;!underFiles.atEnd();underFiles.moveNext()){
var fn = "" + underFiles.item();
//alert(fn);
var content = readFile(fn,fso);
alert(content);
}
}
function readFile(path,fso){
var f1 = fso.GetFile(path);
var fh = fso.OpenTextFile(f1, 1/*reading*/);
var content = '';
while ( !fh.AtEndOfStream ) {
content += fh.ReadLine();
}
fh.close()
return content;
}
function writeExcel(){
var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
ExcelSheet.Application.Visible = true;
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
ExcelSheet.SaveAs("d:\\TEST.XLS");
ExcelSheet.Application.Quit();
}
</script>
<body>
<input type="button" value="遍历文件夹" onclick="readFolder()">
<input type="button" value="写excel" onclick="writeExcel()">
</body>
</html>
第2个回答  2013-01-10
no! javascript语言本身定位就不是用来做这些事情的
相似回答