JAVA实现FTP服务器文件的上传,下载,删除功能
2008/10/08 01:29 [java ] import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.log4j.Logger;
import com.sinosoft.platform.handup.business.submitcapture.service.CaptureServiceImpl;
import com.sinosoft.platform.handup.utils.HandupInitialiser.Handup;
import sun.net.TelnetOutputStream;
import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;
/**
* FTP文件服务器上传,下载,删除操作
* @author hejianke83
*
*/
public class FtpClientUtil{
String localfilename;
String remotefilename;
FtpClient ftpClient;
/**
* @param ip 服务器名字
* @param port 端口
* @param user 用户名
* @param password 密码
* @param path 服务器上的路径
*/
public void connectServer(String ip, int port, String user,
String password, String path){
try {
ftpClient = new FtpClient();
ftpClient.openServer(ip, port);
ftpClient.login(user, password);
System.out.println("login success!");
if (path.length() != 0)
ftpClient.cd(path);
ftpClient.binary();
} catch (IOException ex){
System.out.println("not login");
System.out.println(ex);
}
}
public void closeConnect() {
try {
ftpClient.closeServer();
System.out.println("disconnect success");
} catch (IOException ex) {
System.out.println("not disconnect");
System.out.println(ex);
}
}
public void upload() {
this.localfilename = "D://1.txt";
this.remotefilename = "test2.txt";
try {
TelnetOutputStream os = ftpClient.put(this.remotefilename);
java.io.File file_in = new java.io.File(this.localfilename);
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
System.out.println("upload success");
is.close();
os.close();
} catch (IOException ex) {
System.out.println("not upload");
System.out.println(ex);
}
}
public void download() {
try {
TelnetInputStream is = ftpClient.get(this.remotefilename);
java.io.File file_in = new java.io.File(this.localfilename);
FileOutputStream os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
// System.out.println((char)is.read());
// System.out.println(file_in);
os.write(bytes, 0, c);
}
System.out.println("download success");
os.close();
is.close();
} catch (IOException ex) {
System.out.println("not download");
System.out.println(ex);
}
}
public void download(String remotePath, String remoteFile, String localFile) {
try {
if (remotePath.length() != 0)
ftpClient.cd(remotePath);
TelnetInputStream is = ftpClient.get(remoteFile);
java.io.File file_in = new java.io.File(localFile);
FileOutputStream os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
// System.out.println((char)is.read());
// System.out.println(file_in);
os.write(bytes, 0, c);
}
System.out.println("download success");
os.close();
is.close();
} catch (IOException ex) {
System.out.println("not download");
System.out.println(ex);
}
}
public void download(String remoteFile, String localFile) {
try {
TelnetInputStream is = ftpClient.get(remoteFile);
java.io.File file_in = new java.io.File(localFile);
FileOutputStream os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
// System.out.println((char)is.read());
// System.out.println(file_in);
os.write(bytes, 0, c);
}
System.out.println("download success");
os.close();
is.close();
} catch (IOException ex) {
System.out.println("not download");
System.out.println(ex);
}
}
public void delete_file(FtpClientUtil fu,String url) throws Exception {
fu.ftpClient.sendServer("DELE "+url+"\r\n");
int status = fu.ftpClient.readServerResponse();
System.out.print("ftp delete file status:"+status);
if(status == 250){
System.out.println(" 成功删除FTP服务器中文件");
}
}
public static void main(String agrs[]) {
// String filepath[] = { "/callcenter/index.jsp"};
// String localfilepath[] = { "C:\FTP_Test\index.jsp"};
FtpClientUtil fu = new FtpClientUtil();
String url = Handup.getPropertie(Constants.PropertyKeys.FTP_SERVER_URL);
String username = Handup.getPropertie(Constants.PropertyKeys.FTP_USERNAME);
String password = Handup.getPropertie(Constants.PropertyKeys.FTP_PASSWORD);
// fu.connectServer(url, 21, username,password,"");
fu.connectServer("192.168.1.9", 21, "root","sinosoft","");
try{
//System.out.print(fu.ftpClient.welcomeMsg);
fu.ftpClient.sendServer("DELE 博硕士论文/2008/10611/20208/测试上传_20080904525964/Div+CSS布局入门教程.chm\r\n"); //删除服务器上的文件
System.out.println(fu.ftpClient.readServerResponse());
}
catch(Exception e)
{
e.printStackTrace();
}
//fu.upload();
//fu.download();
fu.closeConnect();
}
public FtpClient getFtpClient() {
return ftpClient;
}
public void setFtpClient(FtpClient ftpClient) {
this.ftpClient = ftpClient;
}
}
2008/10/08 01:29 [java ] import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.log4j.Logger;
import com.sinosoft.platform.handup.business.submitcapture.service.CaptureServiceImpl;
import com.sinosoft.platform.handup.utils.HandupInitialiser.Handup;
import sun.net.TelnetOutputStream;
import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;
/**
* FTP文件服务器上传,下载,删除操作
* @author hejianke83
*
*/
public class FtpClientUtil{
String localfilename;
String remotefilename;
FtpClient ftpClient;
/**
* @param ip 服务器名字
* @param port 端口
* @param user 用户名
* @param password 密码
* @param path 服务器上的路径
*/
public void connectServer(String ip, int port, String user,
String password, String path){
try {
ftpClient = new FtpClient();
ftpClient.openServer(ip, port);
ftpClient.login(user, password);
System.out.println("login success!");
if (path.length() != 0)
ftpClient.cd(path);
ftpClient.binary();
} catch (IOException ex){
System.out.println("not login");
System.out.println(ex);
}
}
public void closeConnect() {
try {
ftpClient.closeServer();
System.out.println("disconnect success");
} catch (IOException ex) {
System.out.println("not disconnect");
System.out.println(ex);
}
}
public void upload() {
this.localfilename = "D://1.txt";
this.remotefilename = "test2.txt";
try {
TelnetOutputStream os = ftpClient.put(this.remotefilename);
java.io.File file_in = new java.io.File(this.localfilename);
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
System.out.println("upload success");
is.close();
os.close();
} catch (IOException ex) {
System.out.println("not upload");
System.out.println(ex);
}
}
public void download() {
try {
TelnetInputStream is = ftpClient.get(this.remotefilename);
java.io.File file_in = new java.io.File(this.localfilename);
FileOutputStream os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
// System.out.println((char)is.read());
// System.out.println(file_in);
os.write(bytes, 0, c);
}
System.out.println("download success");
os.close();
is.close();
} catch (IOException ex) {
System.out.println("not download");
System.out.println(ex);
}
}
public void download(String remotePath, String remoteFile, String localFile) {
try {
if (remotePath.length() != 0)
ftpClient.cd(remotePath);
TelnetInputStream is = ftpClient.get(remoteFile);
java.io.File file_in = new java.io.File(localFile);
FileOutputStream os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
// System.out.println((char)is.read());
// System.out.println(file_in);
os.write(bytes, 0, c);
}
System.out.println("download success");
os.close();
is.close();
} catch (IOException ex) {
System.out.println("not download");
System.out.println(ex);
}
}
public void download(String remoteFile, String localFile) {
try {
TelnetInputStream is = ftpClient.get(remoteFile);
java.io.File file_in = new java.io.File(localFile);
FileOutputStream os = new FileOutputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
// System.out.println((char)is.read());
// System.out.println(file_in);
os.write(bytes, 0, c);
}
System.out.println("download success");
os.close();
is.close();
} catch (IOException ex) {
System.out.println("not download");
System.out.println(ex);
}
}
public void delete_file(FtpClientUtil fu,String url) throws Exception {
fu.ftpClient.sendServer("DELE "+url+"\r\n");
int status = fu.ftpClient.readServerResponse();
System.out.print("ftp delete file status:"+status);
if(status == 250){
System.out.println(" 成功删除FTP服务器中文件");
}
}
public static void main(String agrs[]) {
// String filepath[] = { "/callcenter/index.jsp"};
// String localfilepath[] = { "C:\FTP_Test\index.jsp"};
FtpClientUtil fu = new FtpClientUtil();
String url = Handup.getPropertie(Constants.PropertyKeys.FTP_SERVER_URL);
String username = Handup.getPropertie(Constants.PropertyKeys.FTP_USERNAME);
String password = Handup.getPropertie(Constants.PropertyKeys.FTP_PASSWORD);
// fu.connectServer(url, 21, username,password,"");
fu.connectServer("192.168.1.9", 21, "root","sinosoft","");
try{
//System.out.print(fu.ftpClient.welcomeMsg);
fu.ftpClient.sendServer("DELE 博硕士论文/2008/10611/20208/测试上传_20080904525964/Div+CSS布局入门教程.chm\r\n"); //删除服务器上的文件
System.out.println(fu.ftpClient.readServerResponse());
}
catch(Exception e)
{
e.printStackTrace();
}
//fu.upload();
//fu.download();
fu.closeConnect();
}
public FtpClient getFtpClient() {
return ftpClient;
}
public void setFtpClient(FtpClient ftpClient) {
this.ftpClient = ftpClient;
}
}