ftp方式上传、下载文件
2011年06月01日
//附件是需要的jar包
package com.cbf.util.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
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;
/**
* org.apache.commons.net.ftp.FTPClient;
* @return FTPClient
* @author ryan
* @since Oct 14, 2009
*
*/
public class FtpOperation {
private String ftpIP = "10.1.0.9";
private String loginName = "jishu";
private String password = "123456";
// String remoteDir = "/cc";
private String ftpPort = "21";
private FTPClient ftp = new FTPClient();
private Map map = new HashMap();
/**
*
* @param ftpIP FTP服务器ip
* @param ftpPort FTP服务器端口
* @param loginName FTP服务器登录名
* @param password FTP服务器登录密码
*/
public FtpOperation(String ftpIP, String ftpPort, String loginName,
String password) {
this.ftpIP = ftpIP;
this.ftpPort = ftpPort;
this.loginName = loginName;
this.password = password;
getFtpConnection();
}
/**
*
* @return FTPClient
*/
public FTPClient getFtpConnection() {
try {
// connection
ftp.connect(ftpIP, Integer.parseInt(ftpPort));
int reply = ftp.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
// login
if (ftp.login(loginName, password)) {
ftp.setControlEncoding("GBK");
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
return ftp;
} else {
map.put("msg", "用户名或密码错误");
ftp.logout();
}
} else {
map.put("msg", "ip或端口错误");
ftp.disconnect();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
// TODO Auto-generated catch block
f.printStackTrace();
}
}
}
return null;
}
public void closeFtpConnection() {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
}
/**
*
* @param localFilePath
* 本地文件的绝对路径
* @param serverFilePath
* 上传到ftp上的相对路径相 相对于ftp默认路径 如:"/aa/bb/cc/11.xml"
* @return String
*/
public boolean uploadFile(String localFilePath, String serverFilePath) {
InputStream input = null;
try {
input = new FileInputStream(localFilePath);
if (input == null) {
map.put("msg", "本地文件不存在");
}
int n = serverFilePath.lastIndexOf("/") + 1;
String[] str = serverFilePath.substring(0, n).split("/");// 取文件夹路径
ftp.setControlEncoding("GBK");
for (int i = 1; i getFileList(String path) {
ArrayList list = new ArrayList();
try {
String serverPathEncoding = new String(path.getBytes("GBK"),
"iso-8859-1");
//String[] files = ftp.listNames(serverPathEncoding);//文件个数
FTPFile[] files = ftp.listFiles(serverPathEncoding);//所有东西
if (files == null) {
map.put("msg", path+"这个路径下是空的");
} else {
for (FTPFile ss : files) {
//System.out.println(ss.getName());
list.add(ss.getName());
}
}
} catch (Exception e) {
map.put("msg", "异常");
}
return list;
}
public static void main(String args[]) throws Exception {
FtpOperation ftpup = new FtpOperation("10.1.0.9", "21", "jishu",
"123456");
// ftpup.UploadFile("f:/aa.xml", "/的是/dd/56.xml");
// ftpup.getFtpConnection();
// boolean b = ftpup.uploadFile("h:/eeasas说不定.txt",
// "sd/sdsd33.pdf/11.txt");
// boolean b = ftpup.downloadFile(0, "h:/", "的是/eeasas说不定.txt");
// System.out.println(b);
//ftpup.getFileList("的是/dd/");
}
}
2011年06月01日
//附件是需要的jar包
package com.cbf.util.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
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;
/**
* org.apache.commons.net.ftp.FTPClient;
* @return FTPClient
* @author ryan
* @since Oct 14, 2009
*
*/
public class FtpOperation {
private String ftpIP = "10.1.0.9";
private String loginName = "jishu";
private String password = "123456";
// String remoteDir = "/cc";
private String ftpPort = "21";
private FTPClient ftp = new FTPClient();
private Map map = new HashMap();
/**
*
* @param ftpIP FTP服务器ip
* @param ftpPort FTP服务器端口
* @param loginName FTP服务器登录名
* @param password FTP服务器登录密码
*/
public FtpOperation(String ftpIP, String ftpPort, String loginName,
String password) {
this.ftpIP = ftpIP;
this.ftpPort = ftpPort;
this.loginName = loginName;
this.password = password;
getFtpConnection();
}
/**
*
* @return FTPClient
*/
public FTPClient getFtpConnection() {
try {
// connection
ftp.connect(ftpIP, Integer.parseInt(ftpPort));
int reply = ftp.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
// login
if (ftp.login(loginName, password)) {
ftp.setControlEncoding("GBK");
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
return ftp;
} else {
map.put("msg", "用户名或密码错误");
ftp.logout();
}
} else {
map.put("msg", "ip或端口错误");
ftp.disconnect();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
// TODO Auto-generated catch block
f.printStackTrace();
}
}
}
return null;
}
public void closeFtpConnection() {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
}
/**
*
* @param localFilePath
* 本地文件的绝对路径
* @param serverFilePath
* 上传到ftp上的相对路径相 相对于ftp默认路径 如:"/aa/bb/cc/11.xml"
* @return String
*/
public boolean uploadFile(String localFilePath, String serverFilePath) {
InputStream input = null;
try {
input = new FileInputStream(localFilePath);
if (input == null) {
map.put("msg", "本地文件不存在");
}
int n = serverFilePath.lastIndexOf("/") + 1;
String[] str = serverFilePath.substring(0, n).split("/");// 取文件夹路径
ftp.setControlEncoding("GBK");
for (int i = 1; i getFileList(String path) {
ArrayList list = new ArrayList();
try {
String serverPathEncoding = new String(path.getBytes("GBK"),
"iso-8859-1");
//String[] files = ftp.listNames(serverPathEncoding);//文件个数
FTPFile[] files = ftp.listFiles(serverPathEncoding);//所有东西
if (files == null) {
map.put("msg", path+"这个路径下是空的");
} else {
for (FTPFile ss : files) {
//System.out.println(ss.getName());
list.add(ss.getName());
}
}
} catch (Exception e) {
map.put("msg", "异常");
}
return list;
}
public static void main(String args[]) throws Exception {
FtpOperation ftpup = new FtpOperation("10.1.0.9", "21", "jishu",
"123456");
// ftpup.UploadFile("f:/aa.xml", "/的是/dd/56.xml");
// ftpup.getFtpConnection();
// boolean b = ftpup.uploadFile("h:/eeasas说不定.txt",
// "sd/sdsd33.pdf/11.txt");
// boolean b = ftpup.downloadFile(0, "h:/", "的是/eeasas说不定.txt");
// System.out.println(b);
//ftpup.getFileList("的是/dd/");
}
}