`
zengshaotao
  • 浏览: 757898 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

通过FTP下载,修改待下载的txt文件

 
阅读更多

/**

* 检查结果记录比较多,存储于独立的数据库服务器

* @param mapping

* @param form

* @param request

* @param response

* @return

*/

public ActionForward checkResultDown(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) throws JSchException {

 

String downDate = request.getParameter("downDate");

String selOrg = "";

String downFile = "";

try {

selOrg= URLDecoder.decode(request.getParameter("selOrg"),"UTF-8");

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

}

//服务器上存在的文件名称规则:机构代码_日期

downFile = selOrg.split("_")[0]+"_"+downDate;

FTPClient ftpClient = new FTPClient();

try {

String hosts =  Constant.getStPara("hosts");

String user = Constant.getStPara("user2");

String pwd = Constant.getStPara("pwd");

 

String tmpPath = Constant.getStPara("tmpResultPath");

File f = new File(tmpPath);

if(!f.exists()){

f.mkdirs();

}

 

ftpClient.connect(hosts);

ftpClient.setControlEncoding("UTF-8");  

 

FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);  

conf.setServerLanguageCode("zh");

//FTP登录后用户会有自己初始化配置的目录

ftpClient.login(user, pwd);

FTPFile[] fs = ftpClient.listFiles();

ftpClient.setBufferSize(1024);

// 设置文件类型(二进制)

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

 

FileOutputStream fl = null;

 

for (int i = 0; i < fs.length; i++) {

FTPFile ff = fs[i];

String fileName  = ff.getName();

if (fileName.startsWith(selOrg)) {

 

ServletOutputStream outputStream = response.getOutputStream();

// 这个就就是弹出下载对话框的关键代码

response.setHeader("Content-disposition","attachment;filename="+ fileName);

fl = new FileOutputStream(tmpPath+fileName);

ftpClient.retrieveFile(fileName, fl);

//将FTP服务器上的txt文件保存到本地

fl.flush();

fl.close();

       BufferedReader in_=new BufferedReader(new FileReader(tmpPath+fileName));

       String line;

       int count=1;

       while((line=in_.readLine())!=null){

       if(count==1){

       outputStream.println("规则ID,检测日期,规则说明,规则组ID,检查专题,系统来源,检查表,检查列,检查维度,维度细分,机构号,检查总数,通过数,失败数,出错率,通过率");

       }

       outputStream.println(line);

           count++;

       }

       in_.close();

outputStream.flush();

outputStream.close();

break;

}

}

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException(e.getMessage());

} finally {

try {

ftpClient.disconnect();

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException("关闭FTP连接发生异常!", e);

}

}

 

    return null;

}

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java源码包---java 源码 大量 实例

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    java源码包4

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    java源码包2

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    X-Scan v3.1

    3.0版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本引擎”...

    java源码包3

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    Editplus 3[1].0

    作者主页有很多语法自动完成文件下载,地址 http://editplus.com/files.html 【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis) 在“工具→参数选择→用户工具”选项页设置,...

    X-Scan

    使用说明.txt -- X-Scan使用说明 /dat/language.ini -- 多语言配置文件,可通过设置“LANGUAGE\SELECTED”项进行语言切换 /dat/language.* -- 多语言数据文件 /dat/config.ini -- 用户配置文件,用于...

    BB1407openwrt-RG100A_DB120-squashfs-cfe.bin

    (相比较bash版,减少了个unicodetable.txt文件,Perl语言内部有转码的方法,不再需要此文件了,bash版是因为在openwrt上没有转码的命令才加上这个对照表的。) (已绑定的用户可跳过3、4步) 3、下面开始把SyncY与...

    editplus 代码编辑器html c++ jsp css

    ③ “文件-新建-text”,就可以建立一个空的文本文件,保存时,这个文件自动带有扩展名".txt",也就避免了令人头疼的确认 ④ 模板设置文件名称为“template.ini”,如果和主程序同一路径,可以使用相对路径 罗嗦了...

    asp+txt通用成绩查询系统-Asp

    直接通过FTP上传即可使用,建议先直接上传查询测试。 前台访问:http://网址/目录/ (上传直接使用,无需mysql数据库等的支持) 然后notepad++打开inc/conn.Asp查看参数与网页对应关系。 然后打开默认自带的数据库对比...

    EditPlus 2整理信箱的工具

    作者主页有很多语法自动完成文件下载,地址 http://editplus.com/files.html 【14】工具集成——编译器集成例子(Java、Borland C++、Visual C++、Inno Setup、nsis) 在“工具→参数选择→用户工具”选项页设置,...

    x-SCAN -V3.3-CN.

    在“-port”参数中,允许指定扫描的端口范围(通过修改“dat\config.ini”文件中的“[PORT-LIST]\port=”);在“-ntpass”参数中,允许用户在编辑密码字典时通过“%”通配所有用户名;更新CGI漏洞列表,并对CGI漏洞...

    强大的扫描工具x-scan

    在“-port”参数中,允许指定扫描的端口范围(通过修改“dat\config.ini”文件中的“[PORT- LIST]\port=”);在“-ntpass”参数中,允许用户在编辑密码字典时通过“%”通配所有用户名;更新 CGI漏洞列表,并对CGI...

    易语言 茶凉专用模块

    参数 图标文件, 文本型, 可空, 图标文件的路径 可空:为空时用目标的第一个图标 .参数 运行方式, 整数型, 可空, 1,常规方式,3,最大化,7,最小化 .参数 备注, 文本型, 可空, 快方式的备注信息 .参数 快捷键, 文本型, ...

    东大20春学期《计算机基础X》在线平常作业1.docx

    在Word中,选择"文件"菜单下的"另存为"命令,可以将当前打开的文档另存为能是() A.xls文档类型 B.txt文本文档 C.ppt文件类型 D.bat文档类型 5.关于基本ASCII码,在计算机中的表示方法准确地描述是()。 A.使用8位二...

Global site tag (gtag.js) - Google Analytics