JS读取客户端文件研究

         都知道JS没办法直接读取客户端文件(除了特定目录下边的文件外),但总是有人问,怎么使用JS去读客户端文件。于是就有人出主意使用ActiveXObject,ActiveXObject作为IE特有的插件,几乎可以干任何C/S的事,安全性问题很严重,所以其他浏览器都不支持,说句实话,这就是一个鸡肋,现在大型网站我就没见到过使用ActiveXObject的网站。除了银行网站登陆页面因为安全需要除外。

       不知道那些想通过js读取客户端文件的人怎么想的。现在分析一下代码。         

<!DOCTYPE html>
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

    <title>Test ActiveXObject</title>   
    <script>
function ReadFiles(){
  if(window.ActiveXObject){
 //  alert("yes");
  var fso=new ActiveXObject("Scripting.FileSystemObject");
  var asd= fso.CreateTextFile("C:\\a.txt");//创建文件
  asd.WriteLine("56984566");
  asd.close();
  var kk=fso.OpenTextFile("c:\\a.txt");//打开文件
  while(!kk.atEndOfLine){
  document.writeln(kk.readLine());//读取文件,并输出
}
}
else{
  //  alert("no");
}
}
</script></head>
    <body onclick="ReadFiles();">ffffffffff
	</body>
</html>

主意if(window.ActiveXObject)测试是否支持ActiveXObject控件,我测试了火狐,谷歌,IE,只有IE支持,也就是只有IE可以通过var fso=new ActiveXObject("Scripting.FileSystemObject")读取客户端文件,而且会弹出一个安全提示框。你感觉这样很友好吗?

  所以建议不要使用这种方式读取客户端文件了,这个本身就是一个鸡肋,毫无价值。如果真要读取客户端文件为什么不做成C/S结构的程序呢?不合理的要求就应该拒绝,否则有一天要求兼容其他浏览器时你怎么处理??

 

你可能感兴趣的:(JS读取客户端文件研究)