當前位置:編程學習大全網 - 編程語言 - java 連接 ftp 需要的 知識

java 連接 ftp 需要的 知識

現在已經封裝好了的方法,不需要任何其他知識即可連接的。只需要知道ftp登錄用戶名、密碼、端口、存儲路徑即可。

package zn.ccfccb.util;

import hkrt.b2b.view.util.Log;

import hkrt.b2b.view.util.ViewUtil;

import java.io.ByteArrayOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPFile;

public class CCFCCBFTP {

/**

* 上傳文件

*

* @param fileName

* @param plainFilePath 明文文件路徑路徑

* @param filepath

* @return

* @throws Exception

*/

public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {

FileInputStream fis = null;

ByteArrayOutputStream bos = null;

FTPClient ftpClient = new FTPClient();

String bl = "false";

try {

fis = new FileInputStream(plainFilePath);

bos = new ByteArrayOutputStream(fis.available());

byte[] buffer = new byte[1024];

int count = 0;

while ((count = fis.read(buffer)) != -1) {

bos.write(buffer, 0, count);

}

bos.flush();

Log.info("加密上傳文件開始");

Log.info("連接遠程上傳服務器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);

ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);

ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);

// Log.info("連接遠程上傳服務器"+"192.168.54.106:"+2021);

// ftpClient.connect("192.168.54.106", 2021);

// ftpClient.login("hkrt-CCFCCBHK", "3OLJheziiKnkVcu7Sigz");

FTPFile[] fs;

fs = ftpClient.listFiles();

for (FTPFile ff : fs) {

if (ff.getName().equals(filepath)) {

bl="true";

ftpClient.changeWorkingDirectory("/"+filepath+"");

}

}

Log.info("檢查文件路徑是否存在:/"+filepath);

if("false".equals(bl)){

ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);

return bl;

}

ftpClient.setBufferSize(1024);

ftpClient.setControlEncoding("GBK");

// 設置文件類型(二進制)

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

ftpClient.storeFile(fileName, fis);

Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");

return bl;

} catch (Exception e) {

throw e;

} finally {

if (fis != null) {

try {

fis.close();

} catch (Exception e) {

Log.info(e.getLocalizedMessage(), e);

}

}

if (bos != null) {

try {

bos.close();

} catch (Exception e) {

Log.info(e.getLocalizedMessage(), e);

}

}

}

}

/**

*下載並解壓文件

*

* @param localFilePath

* @param fileName

* @param routeFilepath

* @return

* @throws Exception

*/

public static String fileDownloadByFtp(String localFilePath, String fileName,String routeFilepath) throws Exception {

FileInputStream fis = null;

ByteArrayOutputStream bos = null;

FileOutputStream fos = null;

FTPClient ftpClient = new FTPClient();

String SFP = System.getProperty("file.separator");

String bl = "false";

try {

Log.info("下載並解密文件開始");

Log.info("連接遠程下載服務器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);

ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);

ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);

// ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021);

// ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);

FTPFile[] fs;

ftpClient.makeDirectory(routeFilepath);

ftpClient.changeWorkingDirectory(routeFilepath);

bl = "false";

fs = ftpClient.listFiles();

for (FTPFile ff : fs) {

if (ff.getName().equals(fileName)) {

bl = "true";

Log.info("下載文件開始。");

ftpClient.setBufferSize(1024);

// 設置文件類型(二進制)

ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

InputStream is = ftpClient.retrieveFileStream(fileName);

bos = new ByteArrayOutputStream(is.available());

byte[] buffer = new byte[1024];

int count = 0;

while ((count = is.read(buffer)) != -1) {

bos.write(buffer, 0, count);

}

bos.flush();

fos = new FileOutputStream(localFilePath+SFP+fileName);

fos.write(bos.toByteArray());

Log.info("下載文件結束:"+localFilePath);

}

}

Log.info("檢查文件是否存:"+fileName+" "+bl);

if("false".equals(bl)){

ViewUtil.dataSEErrorPerformedCommon("查詢無結果,請稍後再查詢。");

return bl;

}

return bl;

} catch (Exception e) {

throw e;

} finally {

if (fis != null) {

try {

fis.close();

} catch (Exception e) {

Log.info(e.getLocalizedMessage(), e);

}

}

if (bos != null) {

try {

bos.close();

} catch (Exception e) {

Log.info(e.getLocalizedMessage(), e);

}

}

if (fos != null) {

try {

fos.close();

} catch (Exception e) {

Log.info(e.getLocalizedMessage(), e);

}

}

}

}

// 調用樣例:

public static void main(String[] args) {

try {

// 密鑰/res/20150228

// ZipUtilAll.unZip(new File(("D:/123/123.zip")), "D:/123");

// ZipDemo1232.unZip(new File(("D:/123/123.zip")), "D:/123");

// 明文文件路徑

String plainFilePath = "D:/req_20150204_0011.txt";

// 密文文件路徑

String secretFilePath = "req_20150204_00134.txt";

// 加密

// encodeAESFile(key, plainFilePath, secretFilePath);

fileDownloadByFtp("D://123.zip","123.zip","req/20150228");

ZipUtilAll.unZip("D://123.zip", "D:/123/李筱/");

// 解密

plainFilePath = "D:/123.sql";

// secretFilePath = "D:/test11111.sql";

// decodeAESFile(key, plainFilePath, secretFilePath);

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 上一篇:從天津市河西區開車自駕遊去北戴河南戴河的路線怎麽走?
  • 下一篇:女生是否能成為優秀的Java工程師?#Java工程師#
  • copyright 2024編程學習大全網