apache地址:http://commons.apache.org/net/
改自网友的代码
package Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
public class TestFtp
{
/**
* @param args
* @throws IOException
* @throws SocketException
*/
public static void main(String[] args) throws SocketException, IOException
{
TestFtp t = new TestFtp();
File file = new File("src//Test//Test.java");
System.out.println(file.getAbsolutePath());
FileInputStream in = new FileInputStream(file);
boolean flag;// =t.uploadFile("10.1.0.168", 21, "web", "web", "/", "Test.java", in);
//if(flag)
// System.out.println("上传成功");
flag = t.delFile("10.1.0.168", 21, "web", "web", "/", "Test.java");
if(flag)
System.out.println("下载成功");
}
/**
* Description: 向FTP服务器上传文件
*
* @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 boolean uploadFile(String url, int port, String username,
String password, String path, String filename, InputStream input)
{
// 初始表示上传失败
boolean success = false;
// 创建FTPClient对象
FTPClient ftp = null;
try
{
//登陆FTP
ftp = this.login(url, port, username, password);
if(ftp == null)
return success;
// 转到指定上传目录
ftp.changeWorkingDirectory(path);
// 将上传文件存储到指定目录
ftp.storeFile(filename, input);
// 关闭输入流
input.close();
// 退出ftp
ftp.logout();
// 表示上传成功
success = true;
} catch (IOException e)
{
e.printStackTrace();
} finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
} catch (IOException ioe)
{
}
}
}
return success;
}
/**
* Description: 从FTP服务器下载文件
*
* @param url
* FTP服务器hostname
* @param port
* FTP服务器端口
* @param username
* FTP登录账号
* @param password
* FTP登录密码
* @param remotePath
* FTP服务器上的相对路径
* @param fileName
* 要下载的文件名
* @param localPath
* 下载后保存到本地的路径
* @return
*/
public boolean downFile(String url, int port, String username,
String password, String remotePath, String fileName,
String localPath)
{
// 初始表示下载失败
boolean success = false;
// 创建FTPClient对象
FTPClient ftp = null;
try
{
//登陆FTP
ftp = this.login(url, port, username, password);
if(ftp==null)
return success;
// 转到指定上传目录
ftp.changeWorkingDirectory(remotePath);
// 列出该目录下所有文件
FTPFile[] fs = ftp.listFiles();
// 遍历所有文件,找到指定的文件
for (FTPFile ff : fs)
{
if (ff.getName().equals(fileName))
{
// 根据绝对路径初始化文件
File localFile = new File(localPath + "/" + ff.getName());
// 输出流
OutputStream is = new FileOutputStream(localFile);
// 下载文件
ftp.retrieveFile(ff.getName(), is);
is.close();
}
}
// 退出ftp
ftp.logout();
// 下载成功
success = true;
} catch (IOException e)
{
e.printStackTrace();
} finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
} catch (IOException ioe)
{
}
}
}
return success;
}
public boolean delFile(String url, int port, String username,
String password, String remotePath, String fileName)
{
// 初始表示删除文件失败
boolean success = false;
// 创建FTPClient对象
FTPClient ftp = null;
try
{
//登陆FTP
ftp = this.login(url, port, username, password);
if(ftp==null)
return success;
// 转到指定目录
ftp.changeWorkingDirectory(remotePath);
// 列出该目录下所有文件
FTPFile[] fs = ftp.listFiles();
// 遍历所有文件,找到指定的文件
for (FTPFile ff : fs)
{
if (ff.getName().equals(fileName))
{
success = ftp.deleteFile(fileName);
}
}
// 退出ftp
ftp.logout();
} catch (IOException e)
{
e.printStackTrace();
} finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
} catch (IOException ioe)
{
}
}
}
return success;
}
/** 登陆FTP **/
public FTPClient login(String url,int port,String username,String password) throws SocketException, IOException
{
FTPClient ftp = new FTPClient();
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.connect(url, port);
// 登录ftp
ftp.login(username, password);
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
return null;
}
return ftp;
}
}
分享到:
相关推荐
库提供了FTPClient、FTPSSLClient、FTPSSLSocketFactory等类,可以实现FTP的连接、登录、文件上传、下载、删除、重命名等操作,并且支持主动和被动模式,以及SSL/TLS加密。 3. **Telnet功能** Telnet协议在commons...
在文件上传过程中,`commons-io`可能会被用来处理临时文件、读取文件内容或者进行文件流的转换。 这两个库的结合使用,使得在Java中实现文件上传功能变得更加简单和可靠。首先,通过Servlet容器接收HTTP请求,然后...
- Commons Net提供了完善的FTP客户端实现,可以进行文件的上传、下载、删除等操作,支持FTP、FTPS(FTP over SSL/TLS)和SFTP(SSH File Transfer Protocol)。 - 在不同版本中,FTP客户端的性能和稳定性得到了...
Apache Commons Net 1.4.1提供了一个全面的Java实现,支持FTP的各种操作,包括上传、下载、列出目录、创建和删除文件等。这个库不仅简化了FTP交互,还处理了许多底层的网络细节,如连接管理和错误处理,使得开发者...
在Android应用开发中,有时我们需要实现将文件上传到FTP(File Transfer Protocol)服务器的功能。Apache Commons Net库是一个非常实用的工具,它提供了多种网络协议的支持,包括FTP。在这个压缩包"commons-...
Apache Commons FileUpload和Commons IO是两个非常重要的库,它们为Java提供了强大的文件上传和处理能力。在这个场景中,我们关注的是"commons-fileupload-1.3.jar"和"commons-io-1.2.jar"这两个文件,它们被打包在...
1. FTP/FTPS模块:Apache Commons Net提供了强大的FTP客户端支持,包括文件上传、下载、列表、删除、重命名等操作,同时也支持FTP over SSL/TLS(FTPS)以确保数据传输的安全性。 2. Telnet模块:这个模块提供了对...
在这个版本中,Apache Commons Net提供了对FTP协议全面的支持,包括连接到FTP服务器、上传和下载文件、创建和删除目录、改变工作目录、处理文件权限等。它的API设计得相当直观,使得开发者能够轻松地进行FTP操作。...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库,它们在Web应用中被广泛使用。这两个库分别提供了不同的功能,但在处理文件上传时常常一起使用。 `commons-fileupload-1.2.1....
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库。它们为开发者提供了强大而灵活的工具,使得在Web应用中处理文件上传变得简单易行。 `commons-fileupload-1.2.1.jar`是Apache ...
例如,当文件上传完成后,可能需要将上传的文件移动到服务器的特定目录,或者进行一些预处理,这时Commons IO就派上用场了。 使用这两个库实现文件上传的基本步骤如下: 1. 创建一个Servlet或Filter来处理HTTP请求...
在实际开发中,使用`Commons FileUpload`和`Commons IO`库,开发者可以方便地处理复杂的文件上传逻辑,比如限制文件类型、大小,或者进行上传后的文件处理。 这两个库在Java Web应用、尤其是Servlet和JSP开发中非常...
在与FileUpload库配合使用时,IO库可以方便地进行文件的读写和临时存储,确保文件上传过程的稳定性和安全性。 这两个库的协同工作流程大致如下: 1. **接收请求**:服务器端接收到带有文件的HTTP请求,请求内容...
在使用`commons-fileupload-1.3.2.jar`处理文件上传时,通常会配合`commons-io-2.5.jar`来完成一些辅助操作,例如读取上传文件的内容、检查文件类型、移动文件到目标位置等。通过这两个库的组合,开发者能够方便地在...
在Java Web开发中,文件上传是一项常见的功能,尤其是在构建用户交互性强的Web应用程序时。Apache Commons FileUpload和Commons IO库提供了强大的支持,使得开发者能够方便地处理客户端上传的文件。这里我们将深入...
在处理文件上传过程中, Commons IO可以帮助我们进行文件读写、复制、删除等操作。例如: 1. ` FileUtils `:包含了一系列静态方法,用于执行基本的文件操作,如读取、写入、复制、删除和移动文件。 2. `FileUtils....
Apache Commons Net库提供了全面的FTP客户端功能,包括连接到FTP服务器、上传和下载文件、创建和删除目录、改变工作目录、列出目录内容等。它还支持主动和被动模式,以适应不同网络环境下的数据传输。此外,库中包含...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传和I/O操作的重要库。这两个库在处理Web应用,特别是基于JSP(JavaServer Pages)的文件上传功能时,扮演着核心角色。在这个主题中,我们将...
Apache Commons FileUpload与Apache Commons IO是Java开发中用于处理文件上传功能的重要库。这两个库在Web应用程序中尤其常见,因为它们提供了处理HTTP请求中的多部分数据(如表单上传的文件)的便捷方法。 `...