设为首页 收藏本站
查看: 3366|回复: 0

[经验分享] 用js在客户端自动从ftp下载文件,并写入页面。

[复制链接]

尚未签到

发表于 2016-6-10 13:33:19 | 显示全部楼层 |阅读模式
  

1、写bat文件;2、执行bat文件;3、读取数据文件
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>页面一</title>
</head>
<body>
<div id='desc'></div>
<FORM method="POST" action='../IndexServlet' name='abc' enctype="multipart/form-data" >
<div style='display:none'><textarea id='file' name='file'></textarea></div>
<input type='button' value='获取数据' onclick='getData(this)'/>
<input id='submit' type='submit' value='提交数据' disabled="disabled"/>
</FORM>
<script>
var baseUrl="D:";
var batFileUrl = baseUrl+"\\myftp.bat";
var dataFileUrl = baseUrl+"\\test.txt";
var fso=null;
function getData(obj){
obj.disabled="disabled";
try{
if(window.ActiveXObject){
fso=new ActiveXObject("Scripting.FileSystemObject");
batFile = fso.CreateTextFile(batFileUrl,true);
batFile.WriteLine(baseUrl);
batFile.WriteLine("echo open 10.192.36.129>ftp.txt");
batFile.WriteLine("echo sxrisk>>ftp.txt");
batFile.WriteLine("echo 1qaz2wsx>>ftp.txt");
batFile.WriteLine("echo get /cccc/sxrisk/test.txt>>ftp.txt");
batFile.WriteLine("echo bye>>ftp.txt");
batFile.WriteLine("ftp -s:ftp.txt");
batFile.WriteLine("del ftp.txt");
batFile.Close();
document.getElementById('desc').innerHTML="创建本地bat文件成功";
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run("cmd /C call "+batFileUrl,2,false);//2:不显示cmd窗口
document.getElementById('desc').innerHTML+="<br/>执行bat文件,下载文件结束。";
//fso.DeleteFile(batFileUrl);
setTimeout("readData()",100);
}else{
alert("不支持window.ActiveXObject");
}
}catch(e){
alert(e);
}
obj.disabled="";
}
var count=0;
function readData(){
var kk=null;
try{
kk=fso.OpenTextFile(dataFileUrl);
}catch(e){
if(count<10){
setTimeout("readData()",1000);
document.getElementById('desc').innerHTML+="<br/>读取数据文件失败,1秒后继续";
count++;
}
return;
}
var str='';
while(!kk.atEndOfLine){
str+=kk.readLine()+'   ';
}
kk.Close();
fso.DeleteFile(dataFileUrl);
document.getElementById('file').innerHTML=str;
document.getElementById('desc').innerHTML+="<br/>读取数据文件成功";
document.getElementById('submit').disabled='';
}
</script>
</body>
</html>
  --结果
DSC0000.jpg  
  
  
  
  ----ActiveXObject对象有很大几率创建不了,需要做的:
  1、降低Internet 选项--安全--自定义级别,经测试IE8版本浏览器只要降低这一项即可,其他默认。
DSC0001.jpg
  2、网上有说,cmd中执行命令"regsvr32 scrrun.dll",可以处理"automation服务器不能创建对象"的问题。
  
  3、在注册表中,给Scripting.FileSystemObject项添加权限的事情我也做了,右击"Scripting.FileSystemObject项",添加权限,
DSC0002.jpg
  
  4、创建cmd文件,执行修复什么东西的脚本,不知道管不管用,我也试过。(来自:http://www.iyunv.net/article/9772.htm)
  

5、请将以下语句复制到记事本中,另存为后缀为.cmd的文件,并运行。当然在命令行下一句句运行也没问题。
echo 正在修复,这个过程可能需要几分钟,请稍候……
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/System32/dacui.dll
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/Catroot/icatalog.mdb
regsvr32 /s comcat.dll
regsvr32 /s asctrls.ocx
regsvr32 /s oleaut32.dll
regsvr32 /s shdocvw.dll /I
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s browseui.dll /I
regsvr32 /s msrating.dll
regsvr32 /s mlang.dll
regsvr32 /s hlink.dll
regsvr32 /s mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s urlmon.dll
regsvr32 /s plugin.ocx
regsvr32 /s sendmail.dll
regsvr32 /s mshtml.dll /i
regsvr32 /s scrobj.dll
regsvr32 /s corpol.dll
regsvr32 /s jscript.dll
regsvr32 /s msxml.dll
regsvr32 /s imgutil.dll
regsvr32 /s cryptext.dll
regsvr32 /s inseng.dll
regsvr32 /s iesetup.dll /i
regsvr32 /s cryptdlg.dll
regsvr32 /s actxprxy.dll
regsvr32 /s dispex.dll
regsvr32 /s occache.dll
regsvr32 /s iepeers.dll
regsvr32 /s urlmon.dll /i
regsvr32 /s cdfview.dll
regsvr32 /s webcheck.dll
regsvr32 /s mobsync.dll
regsvr32 /s pngfilt.dll
regsvr32 /s licmgr10.dll
regsvr32 /s hhctrl.ocx
regsvr32 /s inetcfg.dll
regsvr32 /s trialoc.dll
regsvr32 /s tdc.ocx
regsvr32 /s MSR2C.DLL
regsvr32 /s msident.dll
regsvr32 /s msieftp.dll
regsvr32 /s xmsconf.ocx
regsvr32 /s ils.dll
regsvr32 /s msoeacct.dll
regsvr32 /s wab32.dll
regsvr32 /s wabimp.dll
regsvr32 /s wabfind.dll
regsvr32 /s oemiglib.dll
regsvr32 /s directdb.dll
regsvr32 /s inetcomm.dll
regsvr32 /s msoe.dll
regsvr32 /s oeimport.dll
regsvr32 /s msdxm.ocx
regsvr32 /s dxmasf.dll
regsvr32 /s laprxy.dll
regsvr32 /s l3codecx.ax
regsvr32 /s acelpdec.ax
regsvr32 /s mpg4ds32.ax
regsvr32 /s danim.dll
regsvr32 /s Daxctle.ocx
regsvr32 /s lmrt.dll
regsvr32 /s datime.dll
regsvr32 /s dxtrans.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s wshom.ocx
regsvr32 /s wshext.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll mstinit.exe /setup
regsvr32 /s msnsspc.dll /SspcCreateSspiReg
regsvr32 /s msapsspc.dll /SspcCreateSspiReg
echo.
echo.
echo 修复成功!任意键退出!
pause>nul

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-228721-1-1.html 上篇帖子: 让proftpd也可以用mysql轻松管理用户实现ftp磁盘配额 下篇帖子: 备份本地文件,通过ftp命令,备份到远程服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表