通过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;

}

首先我们创建一个用户账户用于登录FTP进行操作。右键点击桌面的我的点击选择管理选项,进入管理界面打开本地用户和组选项,我们可以看到列表中的用户选项,然后右键用户选项,在下拉菜单中选择新用户,开始建立我们的用户,填写用户名称以及密码。描述可以不填。然后点击创建。创建完成在右边的用户列表中就可以看到我们创建的用户了。创建用户完成后我们开始添加IIS程序服务。打开电脑的开始菜单找到控制面板选项,打开进入。进入控制面板界面找到程序选项,点击下方的卸载程序按钮,进入到安装程序列表界面。进入到程序和功能选项栏目,我们可以看到左上方的菜单栏中有一个打开或关闭Windows功能选项,点击进入。进入到打开或关闭Windows功能界面,我们在好到Internet信息服务,然后点击打开在FTP服务器前面打勾,也就是把其子菜单的FTP服务和FTP扩展性打勾,然后点击下方的确定按钮。添加完成 IIS服务之后,开始创建我们的FTP站点,右键点击我的电脑选择管理,然后找到服务和应用程序选项点击打开,接着点击Internet信息服务管理--此时我们可以看到右边出现了一个连接框。点击打开连接框下面的本地主机主页,然后可以看到应用程序池和网站选项,我们右键点击网站选择添加网站。然后在弹出的添加网站框里面输入我们的网站名称,物理路径也就是我们的FTP本地文件夹,我们可以在磁盘里面新建好,然后选择添加,IP地址选择我们本机的IP地址。新建完成我们的FTP之后,我们可以看到网站的下方多出了一个我们刚刚建立的网,右键点击网站名称,选择添加FTP站点发布,然后开始绑定和SSL设置,端口号选择2121.IP地址填写本机IP地址。然后我们打开电脑的浏览器在上方的地址栏里面输入FTP://IP地址:2121点击回车就可以看到我们的FTP服务器已经添加成功了我们可以在添加的本地文件夹里面来管理我们FTP服务器文上传与下载。然后进入身份验证设置选项,我们根据个人用途选择身份验证的基本要求,已经用户的相关权限,设置完毕点击完成选项。此时会提醒我们FTP站点发布成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值