java代码登入ftp java访问ftp服务器( 二 )


怎么用java实现ftp的登陆/**
* 依赖commons-net-3.4.jar, commons-io-2.4.jar
*/
public class FtpUtils {
/**
* 上传
* @param host FTP地址
* @param port 端口ftp默认22,sftp默认23
* @param user ftp用户名
* @param pwd ftp密码
* @param destPath FTP文件保存路径
* @param fileName ftp保存文件名称
* @param file 需要上传的文件
*/
public static void upload(String host, int port,String user, String pwd, String destPath, String fileName, File file){
FTPClient ftp = null;
InputStream fis = null;
try {
//1.建立连接
ftp = new FTPClient();
(host, port);
//2.验证连接地址
int reply = ;
if(FTPReply.isPositiveCompletion(reply)){
;
return;
}
//3.登录
(user, pwd);
//设置上传路径、缓存、字符集、文件类型等
;
;
("UTF-8");
;
//4.上传
fis = new FileInputStream(file);
(fileName, fis);
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
IOUtils.closeQuietly(fis);
try {
if(){
;
}
if(){
;
}
//删除上传临时文件
if(null != filefile.exists()){
file.delete();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
如何用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.;
import org.apache.commons.net.;
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+"/");

推荐阅读