准备条件:java实现ftp上传用到了commons-net-3.3.jar包
首先建立ftphost连接
public boolean connect(String path, String addr, int port, String username, String password) {try {
//FTPClient ftp = new FTPHTTPClient(addr, port, username, password)
ftp = new FTPClient()
int reply
ftp.connect(addr)
System.out.println("连接到:" + addr + ":" + port)
System.out.print(ftp.getReplyString())
reply = ftp.getReplyCode()
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect()
System.err.println("FTP目标服务器积极拒绝.")
System.exit(1)
return false
}else{
ftp.login(username, password)
ftp.enterLocalPassiveMode()
ftp.setFileType(FTPClient.BINARY_FILE_TYPE)
ftp.changeWorkingDirectory(path)
System.out.println("已连接:" + addr + ":" + port)
return true
}
} catch (Exception ex) {
ex.printStackTrace()
System.out.println(ex.getMessage())
return false
}
}
然后再利用ftpclient的makeDirectory方法创建文件夹
public void createDir(String dirname){try{
ftp.makeDirectory(dirname)
System.out.println("在目标服务器上成功建立了文件夹: " + dirname)
}catch(Exception ex){
System.out.println(ex.getMessage())
}
}
断开host连接
public void disconnect(){try {
ftp.disconnect()
} catch (IOException e) {
e.printStackTrace()
}
}
最后是程序的调用方法
public static void main(String[] args) {FtpUploadTest ftpupload = new FtpUploadTest()
if(ftpupload.connect("", "172.39.8.x", 20, "administrator", "abc@123")){
ftpupload.createDir("/UPLOAD")
ftpupload.disconnect()
}
}
上传下载的代码import java.io.BufferedReader
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStreamReader
import sun.net.TelnetOutputStream
import sun.net.TelnetInputStream
import sun.net.ftp.FtpClient
public class download {
String localfilename
String remotefilename
FtpClient ftpClient
// server:服务器名字
// user:用户名
// password:密码
// 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://test2//test.txt"
this.remotefilename = "test.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 static void main(String agrs[]) {
String filepath[] = { "/callcenter/index.jsp", "/callcenter/ip.txt",
"/callcenter/mainframe/image/processing_bar_2.gif",
"/callcenter/mainframe/image/logo_01.jpg" }
String localfilepath[] = { "C:\\FTP_Test\\index.jsp",
"C:\\FTP_Test\\ip.txt", "C:\\FTP_Test\\processing_bar_2.gif",
"C:\\FTP_Test\\logo_01.jpg" }
download fu = new download()
fu.connectServer("172.16.1.66",22, "web_test", "123456","/callcenter")
for(int i=0i<filepath.lengthi++){
fu.download(filepath[i],localfilepath[i])
}
//fu.upload()
//fu.download()
fu.closeConnect()
}
}