JS写日志到本地,查看本地日志<二>

2017-03-22

49

1

上一篇文章记录使用ACTIVEX插件来写入和读取本地文件,感觉不怎么方便。

这一篇文章是实现不安装插件,来实现文件的写入和读取。

第一步:创建一个ActiveX对象

var aiDrvObj = new ActiveXObject("Scripting.FileSystemObject"); 

第二步:编写一个写文件的方法

/**
 * 
 * @param filename 文件路径
 * @param sText  内容
 */
function WriteToFile(filename, sText) { 
	sText = sText.replaceAll("\t", "     "); 
	if(aiDrvObj.FileExists(filename)){ //判断文件是否存在
		var createTextFile = aiDrvObj.OpenTextFile(filename,8,true);
		createTextFile.WriteLine(sText);
		createTextFile.close();
	}else{//不存在
		var path = aiDrvObj.GetParentFolderName(filename);//获取文件的路径
		path = path.replaceAll("\\\\", "/");//将 C:\AilkClient\log\201703\20170322 转为 C:/AilkClient/log/201703/20170322
		var newPath = path.split("/"); //切分路径为【c:,AilkClient,log,201703,20170322】
		var newPathTmp = "";
		for(var i=0;i<newPath.length;i++){
			var tmp = newPath[i];
			if(newPathTmp==""){
				newPathTmp = tmp;
			}else{
				newPathTmp = newPathTmp+"/"+tmp;
			}
			if(!aiDrvObj.FolderExists(tmp) && i==0){//判断文件夹是否存在,创建文件夹
				aiDrvObj.CreateFolder(tmp);
				continue;
			}
			if(i!=newPath.length-1){
				var newFilePath = aiDrvObj.BuildPath(newPathTmp,newPath[i+1]);//构建目录
				if(!aiDrvObj.FolderExists(newFilePath)){
					aiDrvObj.CreateFolder(newFilePath);
				}
			}
		}
		//路径创建完毕,创建文件
		var createTextFile = aiDrvObj.CreateTextFile(filename,true);
		createTextFile.WriteLine(sText);//写入内容
		createTextFile.close();
	}
}

第三步:读取文件内容

function ReadFromFile(filename) {
	var fileName = aiDrvObj.FileExists(filename); 
    if(!fileName){
    	return;
    }
    var forAppending = 1;
    var text = aiDrvObj.OpenTextFile(filename,forAppending);
    var allvVlue = text.ReadAll(); 
    text.close();
	return allvVlue;
}

完整的js,writelog1.js

示例:

写入内容:

<script type="text/javascript">
		$(function(){
			SysLog(new Date()+":进入首页。");
		})
	</script>
	<script src="${ctxStatic}/js/writelog1.js" type="text/javascript"></script>

读取内容:

第一步:在页面加入一个file,选择一个文件

<input type="file" id="file" name="file" class="text1 fl" style="line-height:62px;position:relative;zoom:1"/> 

第二步:读取文件路径、展示

<div id="content" style="width: 90%;height: 300px;overflow-y:scroll;"></div>

JS代码:

<script type="text/javascript">
	function showLogContent(){
		var filePath = $("#file").val();
		if(filePath==null || filePath=="" || filePath=="undefined"){
			alert("文件不能为空");
			return;
		}
		var content = ReadFromFile(filePath);
		$("#content").html(content);
	}
</script>

效果图:

 

发表评论

全部评论:0条

houzhe11

JAVA从业者