ftpclient怎么上传文件

2025-10-27 20:34:02

1、原理就不介绍了,大家直接看代码

2、/** 

* Description: 向FTP服务器上传文件 

* @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建 

* @param url FTP服务器hostname 

* @param port FTP服务器端口 

* @param username FTP登录账号 

* @param password FTP登录密码 

* @param path FTP服务器保存目录 

* @param filename 上传到FTP服务器上的文件名 

* @param input 输入流 

* @return 成功返回true,否则返回false 

*/ 

publicstaticboolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) { 

boolean success = false; 

FTPClient ftp = new FTPClient(); 

try { 

int reply; 

ftp.connect(url, port);//连接FTP服务器 

//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器 

ftp.login(username, password);//登录 

reply = ftp.getReplyCode(); 

if (!FTPReply.isPositiveCompletion(reply)) { 

ftp.disconnect(); 

return success; 

ftp.changeWorkingDirectory(path); 

ftp.storeFile(filename, input); 

  

input.close(); 

ftp.logout(); 

success = true; 

} catch (IOException e) { 

e.printStackTrace(); 

} finally { 

if (ftp.isConnected()) { 

try { 

ftp.disconnect(); 

} catch (IOException ioe) { 

return success; 

}<pre></pre> 

/**

* Description: 向FTP服务器上传文件

* @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建

* @param url FTP服务器hostname

* @param port FTP服务器端口

* @param username FTP登录账号

* @param password FTP登录密码

* @param path FTP服务器保存目录

* @param filename 上传到FTP服务器上的文件名

* @param input 输入流

* @return 成功返回true,否则返回false

*/

public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) {

boolean success = false;

FTPClient ftp = new FTPClient();

try {

int reply;

ftp.connect(url, port);//连接FTP服务器

//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器

ftp.login(username, password);//登录

reply = ftp.getReplyCode();

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();

return success;

}

ftp.changeWorkingDirectory(path);

ftp.storeFile(filename, input); 

  

input.close();

ftp.logout();

success = true;

} catch (IOException e) {

e.printStackTrace();

} finally {

if (ftp.isConnected()) {

try {

ftp.disconnect();

} catch (IOException ioe) {

}

}

}

return success;

}

3、两个小例子:

1.将本地文件上传到FTP服务器上,代码如下:

4、@Test 

publicvoid testUpLoadFromDisk(){ 

try { 

FileInputStream in=new FileInputStream(new File("D:/test.txt")); 

boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in); 

System.out.println(flag); 

} catch (FileNotFoundException e) { 

e.printStackTrace(); 

}<pre></pre> 

@Test

public void testUpLoadFromDisk(){

try {

FileInputStream in=new FileInputStream(new File("D:/test.txt"));

boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in);

System.out.println(flag);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

5、2.在FTP服务器上生成一个文件,并将一个字符串写入到该文件中

6、@Test 

publicvoid testUpLoadFromString(){ 

try { 

InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8")); 

boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input); 

System.out.println(flag); 

} catch (UnsupportedEncodingException e) { 

e.printStackTrace(); 

}<pre></pre> 

@Test

public void testUpLoadFromString(){

try {

InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8"));

boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input);

System.out.println(flag);

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢