/**
* 检查结果记录比较多,存储于独立的数据库服务器
* @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;
}
相关推荐
4. **下载文件**:调用`retrieveFile`方法完成文件下载操作。 #### 四、注意事项 1. **权限问题**:确保登录的FTP账户具有相应的读写权限。 2. **异常处理**:在实际开发中,应更加细致地处理异常情况,比如重试...
// 只监控.txt文件 watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.Size; ``` 然后,我们可以为`Created`、`Changed`、`Renamed`等事件添加事件处理程序。例如,当有...
- **功能说明**:从远程 FTP 服务器批量下载多个文件到本地计算机。 - **参数说明**: - `remote-files`:支持通配符,如 `*.txt` 表示下载所有文本文件。 - **示例**:`mget *.txt` #### 5. CD (切换目录) - **...
FTP(File Transfer Protocol)是互联网上用于文件传输的标准协议,广泛应用于文件的上传和下载。在C#中,我们可以利用System.Net命名空间中的FtpWebRequest和FtpWebResponse类来实现FTP功能。本教程将深入探讨如何...
SwiFTP利用这个协议,让用户能够通过FTP客户端连接到Android设备,进行上传、下载或管理文件。这对于开发者、摄影师、音乐爱好者或其他需要在不同设备间移动文件的用户来说,非常实用。 在Android设备上运行SwiFTP...
"新建 文本文档.txt"可能是开发者或用户创建的一个临时文本文件,可能包含了笔记、待办事项或其他相关信息。"8uftp.xml"可能是软件的配置文件,存储了用户的设置和连接信息,以XML格式编码,方便解析和读取。 使用...
【全国专业技术人员计算机应用能力考试】中的FTP客户端软件使用主要涉及CuteFTP这款软件,它是一种常见的FTP(文件传输协议)客户端工具,用于在互联网上进行文件的上传和下载。以下是对CuteFTP软件基础知识的详细...
1. **文件管理**:用户可以通过Web浏览器进行上传、下载、删除、重命名、移动和复制文件或目录,大大简化了远程服务器文件的操作流程。 2. **权限设置**:通过`setpermission.php`,用户可以轻松地更改文件或目录...
2. **`cd /ftp/`**: 更改当前工作目录到`/ftp/`,该目录通常存储待上传的文件。 3. **`CURRENTDATE`, `YESTERDAY`, `THREEDAYAGO`**: 使用`date`命令获取当前日期、昨天日期以及三天前的日期,并将其存储为变量。...
4. **下载功能**:文件下载通常通过HTTP响应头中的Content-Disposition和Content-Type字段来控制。PHP的`readfile()`或`file_get_contents()`函数可以读取并输出文件内容。 5. **权限控制**:实现文件的访问权限...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
4. **下载暂停与恢复**:如果你的下载过程中突然断网或需要暂时停止,Motrix可以保存下载进度,待条件恢复后继续下载,无需从头开始。 5. **简洁界面**:Motrix 的设计遵循极简主义,没有广告打扰,使得用户能专注...
如果希望进一步简化操作,可以对网站根目录下的[all]文件夹设置FTP下载,这样教师或管理员可以通过FTP工具直接访问和管理各个科目的作业,而无需登录网页后台。 六、注意事项 在使用过程中,确保网站服务器始终处于...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...
7. 网络配置文件:通过修改`/etc/HOSTNAME`文件可以更改主机名,配置DNS解析则需要编辑`/etc/resolv.conf`。 8. `ping`命令:使用ICMP协议测试网络连通性,检查主机是否可达。 9. 硬盘分区:安装Linux时,需要创建...
(相比较bash版,减少了个unicodetable.txt文件,Perl语言内部有转码的方法,不再需要此文件了,bash版是因为在openwrt上没有转码的命令才加上这个对照表的。) (已绑定的用户可跳过3、4步) 3、下面开始把SyncY与...
用户可以将待下载的链接逐一添加到这个文件中,Download Machine会自动检测到新条目并启动下载过程。这种批处理方式非常适合需要下载大量资源的情况,例如更新软件库、抓取网页数据或者进行大规模的数据备份。 ...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
3.0版本提供了简单的插件开发包,便于有编程基础的朋友自己编写或将其他调试通过的代码修改为X-Scan插件。另外Nessus攻击脚本的翻译工作已经开始,欢迎所有对网络安全感兴趣的朋友参与。需要“Nessus攻击脚本引擎”...