`
zengshaotao
  • 浏览: 788884 次
  • 性别: 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 FTP 指定下载文件和上传文件到指定的服务器目录

    4. **下载文件**:调用`retrieveFile`方法完成文件下载操作。 #### 四、注意事项 1. **权限问题**:确保登录的FTP账户具有相应的读写权限。 2. **异常处理**:在实际开发中,应更加细致地处理异常情况,比如重试...

    C# 监控目录变化目录以及变化文件及实现FTP传输

    // 只监控.txt文件 watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.Size; ``` 然后,我们可以为`Created`、`Changed`、`Renamed`等事件添加事件处理程序。例如,当有...

    FTP_下DOS命令

    - **功能说明**:从远程 FTP 服务器批量下载多个文件到本地计算机。 - **参数说明**: - `remote-files`:支持通配符,如 `*.txt` 表示下载所有文本文件。 - **示例**:`mget *.txt` #### 5. CD (切换目录) - **...

    ftp.rar_c# ftp多线程_ftp_ftp 断点续传 多线程_ftp 断点续传 实现_ftp 线程

    FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,广泛应用于文件的上传和下载。在C#中,我们可以利用System.Net命名空间中的FtpWebRequest和FtpWebResponse类来实现FTP功能。本教程将深入探讨如何...

    SwiFTP.rar_FFY_android SwiFTP_android ftp_ftp android _swiftp

    SwiFTP利用这个协议,让用户能够通过FTP客户端连接到Android设备,进行上传、下载或管理文件。这对于开发者、摄影师、音乐爱好者或其他需要在不同设备间移动文件的用户来说,非常实用。 在Android设备上运行SwiFTP...

    FTP上次工具

    "新建 文本文档.txt"可能是开发者或用户创建的一个临时文本文件,可能包含了笔记、待办事项或其他相关信息。"8uftp.xml"可能是软件的配置文件,存储了用户的设置和连接信息,以XML格式编码,方便解析和读取。 使用...

    全国专业技术人员计算机应用能力考试InternetFTP客户端软件的使用.pdf

    【全国专业技术人员计算机应用能力考试】中的FTP客户端软件使用主要涉及CuteFTP这款软件,它是一种常见的FTP(文件传输协议)客户端工具,用于在互联网上进行文件的上传和下载。以下是对CuteFTP软件基础知识的详细...

    Kymera WebFTP-开源

    1. **文件管理**:用户可以通过Web浏览器进行上传、下载、删除、重命名、移动和复制文件或目录,大大简化了远程服务器文件的操作流程。 2. **权限设置**:通过`setpermission.php`,用户可以轻松地更改文件或目录...

    linux和windows下的自动ftp脚本(shell bat)

    2. **`cd /ftp/`**: 更改当前工作目录到`/ftp/`,该目录通常存储待上传的文件。 3. **`CURRENTDATE`, `YESTERDAY`, `THREEDAYAGO`**: 使用`date`命令获取当前日期、昨天日期以及三天前的日期,并将其存储为变量。...

    php网盘源码

    4. **下载功能**:文件下载通常通过HTTP响应头中的Content-Disposition和Content-Type字段来控制。PHP的`readfile()`或`file_get_contents()`函数可以读取并输出文件内容。 5. **权限控制**:实现文件的访问权限...

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

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

    Motrix-1.4.1-MacOs.rar

    4. **下载暂停与恢复**:如果你的下载过程中突然断网或需要暂时停止,Motrix可以保存下载进度,待条件恢复后继续下载,无需从头开始。 5. **简洁界面**:Motrix 的设计遵循极简主义,没有广告打扰,使得用户能专注...

    使用说明1

    如果希望进一步简化操作,可以对网站根目录下的[all]文件夹设置FTP下载,这样教师或管理员可以通过FTP工具直接访问和管理各个科目的作业,而无需登录网页后台。 六、注意事项 在使用过程中,确保网站服务器始终处于...

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

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

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

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

    Linux期末考试试题(含答案)35—Linux资料文档.pdf

    7. 网络配置文件:通过修改`/etc/HOSTNAME`文件可以更改主机名,配置DNS解析则需要编辑`/etc/resolv.conf`。 8. `ping`命令:使用ICMP协议测试网络连通性,检查主机是否可达。 9. 硬盘分区:安装Linux时,需要创建...

    BB1407openwrt-RG100A_DB120-squashfs-cfe.bin

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

    Download machine:批量下载管理器-开源

    用户可以将待下载的链接逐一添加到这个文件中,Download Machine会自动检测到新条目并启动下载过程。这种批处理方式非常适合需要下载大量资源的情况,例如更新软件库、抓取网页数据或者进行大规模的数据备份。 ...

    java源码包2

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

    X-Scan v3.1

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

Global site tag (gtag.js) - Google Analytics