刘韬 2 years ago
parent
commit
6e9f1a9915

+ 48 - 0
DataFusion/src/com/zskk/control/ViewController.java

@@ -1,12 +1,20 @@
 package com.zskk.control;
 
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
+import org.apache.commons.net.ftp.FTPClient;
+import org.apache.commons.net.ftp.FTPFile;
+import org.apache.commons.net.ftp.FTPReply;
+
 import com.jfinal.core.Controller;
 import com.jfinal.kit.PropKit;
 import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
@@ -72,6 +80,46 @@ public class ViewController extends Controller {
 		return new DruidPlugin(PropKit.get("jdbcUrl_connected"), PropKit.get("user_connected"),PropKit.get("password_connected").trim());
 	}
 	
+	public void downloadFtpFile() {
+		String remoteFileName =  this.getPara("a");
+//		String fileName = this.getPara("b");
+        FTPClient ftpClient = new FTPClient();
+        int reply;
+        try {
+            ftpClient.connect(PropKit.get("ftp_host"), PropKit.getInt("ftp_port"));
+            ftpClient.login(PropKit.get("ftp_user"), PropKit.get("ftp_password"));
+            reply = ftpClient.getReplyCode();
+            if (!FTPReply.isPositiveCompletion(reply)) {
+                ftpClient.disconnect();
+                return;
+            }
+            ftpClient.setControlEncoding("UTF-8");
+            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
+            ftpClient.enterLocalPassiveMode();
+            
+            FTPFile allFile[] = ftpClient.listFiles("");
+            for (int i = 0; i < allFile.length; i++) {
+            	 File localFile = new File("/home/zskk/FTP_FILE" + File.separatorChar + allFile[i].getName());
+                 OutputStream os = new FileOutputStream(localFile);
+                 //ftp中文名需要iso-8859-1字符
+                 boolean flag2 = ftpClient.retrieveFile(new String(allFile[i].getName().getBytes("GBK"), "iso-8859-1"), os);
+                 if (!flag2) {
+                     System.out.println("没有找到" + remoteFileName + "---该文件");
+                     localFile.delete();
+                 } else {
+                     System.out.println("=================== save success");
+                 }
+                 os.close();
+			}
+           
+            ftpClient.logout();
+            ftpClient.disconnect();
+            renderText("succ");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+	
 	/**
 	 * post请求
 	 * @param url-请求地址

+ 48 - 0
DataFusion/src/com/zskk/service/DataService.java

@@ -1,9 +1,17 @@
 package com.zskk.service;
 
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
 
+import org.apache.commons.net.ftp.FTPClient;
+import org.apache.commons.net.ftp.FTPFile;
+import org.apache.commons.net.ftp.FTPReply;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -77,6 +85,46 @@ public class DataService {
     	postWithJson(FEE_URL, jsonObject);
     }
     
+    /*
+     * 下载文件夹
+     */
+    public void downloadFtpFile(String remoteFileName, String fileName) {
+        FTPClient ftpClient = new FTPClient();
+        int reply;
+        try {
+            ftpClient.connect(PropKit.get("ftp_host"), PropKit.getInt("ftp_port"));
+            ftpClient.login(PropKit.get("ftp_user"), PropKit.get("ftp_password"));
+            reply = ftpClient.getReplyCode();
+            if (!FTPReply.isPositiveCompletion(reply)) {
+                ftpClient.disconnect();
+                return;
+            }
+            ftpClient.setControlEncoding("UTF-8");
+            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
+            ftpClient.enterLocalPassiveMode();
+            
+            FTPFile allFile[] = ftpClient.listFiles("");
+            for (int i = 0; i < allFile.length; i++) {
+            	 File localFile = new File("/home/zskk/FTP_FILE" + File.separatorChar + fileName);
+                 OutputStream os = new FileOutputStream(localFile);
+                 //ftp中文名需要iso-8859-1字符
+                 boolean flag2 = ftpClient.retrieveFile(new String(allFile[i].getName().getBytes("GBK"), "iso-8859-1"), os);
+                 if (!flag2) {
+                     System.out.println("没有找到" + remoteFileName + "---该文件");
+                     localFile.delete();
+                 } else {
+                     System.out.println("=================== save success");
+                 }
+                 os.close();
+			}
+           
+            ftpClient.logout();
+            ftpClient.disconnect();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+    
     public static String postWithParameters(String url, Map<String, String> map) {
     	
     	FormBody.Builder formbody = new FormBody.Builder();