(function(){ fs = {}; var postsomething = function (data,_ip,callback) { //callback:function(err, data) //data:字符串 var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ switch(xhr.readyState){ case 4 : if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) { if (Boolean(callback)){ if (xhr.responseText.slice(0,6)=='error:'){ callback(xhr.responseText,null); } else { callback(null,xhr.responseText); } } //printf(xhr.responseText) }else{ if (Boolean(callback))callback(xhr.status,null); //printf('error:' + xhr.status+'
'+(xhr.responseText||'')); } break; } } xhr.open('post',_ip); xhr.setRequestHeader('Content-Type','text/plain'); if(typeof(data)==typeof([][0]) || data==null)data=JSON.stringify({1:2}); xhr.send(data); } fs.readFile = function (filename,encoding,callback) { if (typeof(filename)!=typeof('')) throw 'Type Error in fs.readFile'; if (encoding=='utf-8'){ //读文本文件 //filename:支持"/"做分隔符 //callback:function(err, data) //data:字符串 var data=''; data+='type=utf8&'; data+='name='+filename; postsomething(data,'/readFile',callback); return; } if (encoding=='base64'){ //读二进制文件 //filename:支持"/"做分隔符 //callback:function(err, data) //data:base64字符串 var data=''; data+='type=base64&'; data+='name='+filename; postsomething(data,'/readFile',callback); return; } throw 'Type Error in fs.readFile'; } fs.writeFile = function (filename,datastr,encoding,callback) { if (typeof(filename)!=typeof('') || typeof(datastr)!=typeof('')) throw 'Type Error in fs.writeFile'; if (encoding=='utf-8'){ //写文本文件 //filename:支持"/"做分隔符 //callback:function(err) //datastr:字符串 var data=''; data+='type=utf8&'; data+='name='+filename; data+='&value='+datastr; postsomething(data,'/writeFile',callback); return; } if (encoding=='base64'){ //写二进制文件 //filename:支持"/"做分隔符 //callback:function(err) //datastr:base64字符串 var data=''; data+='type=base64&'; data+='name='+filename; data+='&value='+datastr; postsomething(data,'/writeFile',callback); return; } throw 'Type Error in fs.writeFile'; } fs.readdir = function (path, callback) { //callback:function(err, data) //path:支持"/"做分隔符,不以"/"结尾 //data:[filename1,filename2,..] filename是字符串,只包含文件不包含目录 if (typeof(path)!=typeof('')) throw 'Type Error in fs.readdir'; var data=''; data+='name='+path; postsomething(data,'/listFile',function(err, data){callback(err,JSON.parse(data))}); return; } })();