org.apache FTPClient
import java.io.File;import java.io.FileOutputStream;
import java.io.InputStream;
import javax.swing.JOptionPane;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import com.sun.org.apache.regexp.internal.recompile;
/**
*
* @author Administrator
*记得链接后必须关闭连接
*/
public class ftpClient {
FTPClient ftp=null;
public ftpClient() {
// TODO Auto-generated constructor stub
ftp=new FTPClient();
}
public void ftpdisconnect(){
if(ftp.isConnected()){
try{
ftp.disconnect();
}catch (Exception e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null,"关闭失败!"+e.getMessage(), "关闭失败", JOptionPane.ERROR_MESSAGE);
}
}
}
public int getConn(String server,String username,String password,String path){
int i=0;
int opi=0;
if(ftp.isConnected()){
String ftpserver=ftp.getLocalAddress().getHostAddress();
if(!ftpserver.equals(server)){
opi=JOptionPane.showConfirmDialog(null, "是否断开"+ftpserver+"--链接"+server, "提示", JOptionPane.YES_NO_OPTION);
}else{
return i;
}
}
if(opi==0){
ftp.setControlEncoding("GBK");
FTPClientConfig conf=new FTPClientConfig("GBK");
conf.setServerLanguageCode("zh");
try{
ftp.connect(server);
ftp.setSoTimeout(20);//超时十几秒的时间
ftp.login(username, password);
int reply=ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
JOptionPane.showMessageDialog(null,"登录失败,用户名或者密码错误!", "登录失败", JOptionPane.ERROR_MESSAGE);
i=1;
}
if(!ftp.changeWorkingDirectory(path)){
JOptionPane.showMessageDialog(null,"跳转失败,路径有误!", "跳转失败", JOptionPane.ERROR_MESSAGE);
i=3;
}
}catch (Exception e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null,"链接失败,请重新输入!"+e.getMessage(), "链接失败", JOptionPane.ERROR_MESSAGE);
i=2;
}
}
return i;
}
//判断是否有该文件
public boolean pdFile(String filename){
boolean flag=false;
if(ftp.isConnected()){
try{
FTPFile[] file=ftp.listFiles(filename);
if(file.length>0){
flag=true;
}
}catch (Exception e) {
// TODO: handle exception
}
}
return flag;
}
public int upLoadFile(String filename,InputStream input){
int i=0;
if(ftp.isConnected()){
try{
if(!pdFile(filename)){
ftp.storeFile(filename, input);
input.close();
}else{
JOptionPane.showMessageDialog(null,"上传"+filename+"重复", "上传失败", JOptionPane.ERROR_MESSAGE);
input.close();
i=1;
}
}
catch (Exception e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null,"上传"+filename+"失败:"+e.getMessage(), "上传失败", JOptionPane.ERROR_MESSAGE);
i=2;
}
}else{
JOptionPane.showMessageDialog(null,"未连接FTP服务器", "未连接FTP服务器", JOptionPane.ERROR_MESSAGE);
i=3;
}
return i;
}
public int downLoadFile(String filename,String locapth){
int i=0;
if(ftp.isConnected()){
if(pdFile(filename)){
locapth=locapth+"\\"+filename;
File file=new File(locapth);
try{
FileOutputStream out=new FileOutputStream(file);
ftp.retrieveFile(filename, out);
out.close();
}catch (Exception e) {
// TODO: handle exception
JOptionPane.showMessageDialog(null,"下载"+filename+"失败:"+e.getMessage(), "下载失败", JOptionPane.ERROR_MESSAGE);
i=1;
}
}else{
JOptionPane.showMessageDialog(null,"下载"+filename+"不存在", "下载失败", JOptionPane.ERROR_MESSAGE);
i=2;
}
}else{
JOptionPane.showMessageDialog(null,"未连接FTP服务器", "未连接FTP服务器", JOptionPane.ERROR_MESSAGE);
i=3;
}
return i;
}
}
页:
[1]