java模拟ftp调用ftp服务端实现文件上传
ftp服务端下载地址:https://download.csdn.net/download/heqinghua217/10339631
下载好了之后,安装,之后新建域,然后设置账号,以及账号的目录权限即可。
java调用的代码如下,记得这里只支持jdk1.6, 如果是web项目,引入了jdk1.6之后,不需要加入任何jar包即可运行
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
public class TFtpUpload {
FtpClient ftpClient = new FtpClient();
String sServer = "";
String sUser = "";
String sPassword = "";
String sDesFolder;
String sUpdate;
public String getSDesFolder() {
return sDesFolder;
}
public void setSDesFolder(String desFolder) {
sDesFolder = desFolder;
}
public String getSUpdate() {
return sUpdate;
}
public void setSUpdate(String update) {
sUpdate = update;
}
public String getSPassword() {
return sPassword;
}
public void setSPassword(String password) {
sPassword = password;
}
public String getSServer() {
return sServer;
}
public void setSServer(String server) {
sServer = server;
}
public String getSUser() {
return sUser;
}
public void setSUser(String user) {
sUser = user;
}
/** ftp 目录上传 */
private void uploadFolder(String strFoldName) throws IOException {
File f = new File(strFoldName);
if (!f.exists()) {
return;
}
File subFile[] = f.listFiles();
for (int i = 0; i < subFile.length; i++) {
uploadFile(subFile[i], subFile[i].getName());
}
}
/**
* 设置登录ftp信息
*/
private void setLoginInfo(String strServerIp, String strUser,
String strPasswd) {
sServer = strServerIp;
sUser = strUser;
sPassword = strPasswd;
}
/**
* 连接ftp
*/
public void connect() throws IOException {
ftpClient.openServer(sServer);
ftpClient.login(sUser, sPassword);
ftpClient.binary();
}
/**
* 上载文件到 ftp strSrcFileName 待上传文件路径 strObjFileName 上传后的文件路径
*/
public void uploadFile(String strSrcFileName, String strObjFileName)
throws IOException {
File file_in = new File(strSrcFileName);
uploadFile(file_in, strObjFileName);
}
/**
* ftp下载 srcFname 待下载的ftp文件路径 tarFname 下载到本地后的文件路径
*/
public void downloadFile(String srcFname, String tarFname) throws Exception {
TelnetInputStream is = ftpClient.get(srcFname);
File file_out = new File(tarFname);
FileOutputStream os = new FileOutputStream(file_out);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
}
/** 上传文件 */
private void uploadFile(File fScrFile, String strObjFileName)
throws IOException {
TelnetOutputStream os = ftpClient.put(strObjFileName);
FileInputStream is = new FileInputStream(fScrFile);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
log(" 「" + strObjFileName + "」 File has been uploaded。\r\n");
}
public void closeConnect() throws IOException {
ftpClient.closeServer();
}
private void log(Object obj) {
System.out.println(obj);
}
/** 要求 jdk 1.6 */
public static void main(String[] args) throws Exception {
TFtpUpload ftp = new TFtpUpload();
ftp.setLoginInfo("10.250.196.67", "heqh", "123456");
ftp.connect();
ftp.uploadFile("d:/基本格式.xml", "基本格式.xml");
ftp.downloadFile("基本格式.xml","c:/基本格式.xml");
ftp.closeConnect();
}
}