需要引入外部jar包:commons-net-2.0.jar(或者是子包commons-net-ftp-2.0.jar)
STEP1:
/**
* 连接并登录FTP
* @param hostname:ftp地址(不带ftp://)
* @param username:登录用户名
* @param password:登录密码
**/
public int openFtp(String hostname, String username, String password) {
int result = 0;
// 第一步:实例化FTPClient
ftpClient = new FTPClient();
try {
// 第二步:连接FTP
ftpClient.connect(hostname);
// 第三步:登录FTP
ftpClient.login(username, password);
} catch (SocketException e) {
// 连接错误时捕捉此异常
result = 1;
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
STEP2:
/**
* 下载单个文件
*
* @param remoteFile
* :需要下载的文件,格式为ftp://xx.xx.xx.xx/remoteFile,如:ftp://10.10.10.10/dir1
* /dir2/file.txt,则remoteFile为dir1/dir2/file.txt
* @param localFile:下载的文件保存到本地的文件,为完整绝对路径。
* @return
*/
public int ftpDownload(String remoteFile, String localFile) {
FileOutputStream fos = null;
InputStream is = null;
try {
// 第一步:设置基本属性
ftpClient.setBufferSize(1024);
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 第二步:获取远程文件的输入流
is = ftpClient.retrieveFileStream(remoteFile);
if (is == null) {
// 如果输入流为空,则表示要下载的远程文件不存在
return 0;
} else {
// 如果输入流不为空,则将远程文件的输入流写到本地
fos = new FileOutputStream(localFile);
byte[] buffer = new byte[1024];
int i = -1;
while ((i = is.read(buffer)) != -1) {
fos.write(buffer, 0, i);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭输入输出流
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(fos);
}
return 1;
}
STEP3:
STEP4:
/**
* 退出登录ftp,并断开连接
*/
public void closeFtp() {
try {
if (ftpClient != null) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException e) {
// 断开连接错误时捕捉此异常
}
}
分享到:
相关推荐
在Asp.NET中,我们可以创建Web服务或API,通过HTTP请求处理FTP操作,使得客户端能够通过Web界面进行文件上传和下载。 4. **FTP文件上传**: 文件上传涉及创建`FtpWebRequest`对象,设置其方法属性为`...
FTP上传下载文件
例如,Python脚本可以通过ftplib连接到服务器,然后使用STOR命令上传文件,用RETR命令下载文件。确保在脚本中处理错误,如网络中断或文件不存在的情况。 4. 配置信息:脚本需要包含FTP服务器的地址、端口号(默认21...
**FTP上传文件:** 要实现FTP文件上传,我们首先创建一个`FtpWebRequest`对象,设置其方法为`WebMethod.UploadFile`,然后提供FTP服务器的URL、用户名和密码。接着,打开一个流写入器,将本地文件内容写入请求的主体...
通过这个类,我们可以执行各种FTP操作,如登录、改变工作目录、获取文件列表、上传文件和下载文件等。 1. **创建`FtpWebRequest`对象**:这是所有FTP操作的第一步。我们需要指定FTP服务器的URL和相应的HTTP方法,如...
4. **文件上传与下载**:源代码会包含实现FTP上传和下载的函数,可能使用FTP的STOR(存储)命令上传文件,使用RETR(检索)命令下载文件。 5. **目录浏览**:可能通过FTP的LIST和NLST命令获取服务器目录信息,并...
4. **文件上传**:在VB中,使用FTP命令`STOR`或对应的API方法上传文件。这通常涉及读取本地文件,打开FTP连接,发送文件数据,并确保正确关闭连接。 5. **文件下载**:通过`RETR`命令或相应的API方法下载文件。这...
在C++中实现FTP功能,可以帮助开发者实现在本地计算机与远程服务器之间的文件上传和下载。 FTPManager类是这个压缩包的核心,它封装了FTP协议的相关操作,使得在C++程序中使用FTP变得更加简单。FTPManager.cpp和...
5. **文件上传**:使用`storeFile()`方法上传文件。你需要提供远程文件路径和一个InputStream,这个InputStream通常来自本地文件。 ```java File localFile = new File("C:\\local\\file.txt"); InputStream in = ...
本教程将聚焦于如何利用Qt库结合libcurl库来实现FTP文件的上传和下载功能。 首先,Qt是一个功能强大的C++图形用户界面库,它提供了一整套用于创建桌面和移动应用的工具和框架。而libcurl是一个开源的库,能够处理...
在 Android 中,FTP 客户端的实现需要使用到 FTPToolkit 类,该类提供了创建 FTP 连接、上传文件、下载文件、删除文件等功能。 ```java public class DownLoad { private FTPClient ftpClient; public void ...
根据给定的信息,本文将详细解释如何利用Java与JSP技术来实现从FTP服务器上传下载文件的功能,并且会对部分给出的代码片段进行解读。 ### Java + JSP 实现 FTP 文件上传下载 #### 一、JSP 页面代码实现 在JSP页面...
3. **FTP命令**:FTP协议定义了一系列命令,如`USER`(提供用户名)、`PASS`(提供密码)、`CWD`(改变工作目录)、`LIST`(列出目录内容)、`PUT`(上传文件)、`GET`(下载文件)等。 4. **数据传输**:FTP使用两...
根据给定的文件信息,我们可以总结出以下关于使用C# WinForm进行FTP上传、下载以及获取文件列表的关键知识点: ### C# WinForm与FTP交互基础知识 在C#中,使用WinForm开发图形用户界面(GUI)应用时,可以通过.NET...
5. FTP上传下载示例: - 上传文件: ```java FileInputStream fis = new FileInputStream(localFilePath); ftpClient.storeFile(remoteFilePath, fis); fis.close(); ``` - 下载文件: ```java ...
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...
在这个场景中,"一个ftp上传下载类(MFC)" 是一个使用MFC构建的类,它封装了FTP协议,使得开发者能够方便地在自己的应用中实现FTP的上传和下载功能。 FTP上传下载类的核心功能包括: 1. **连接与断开**:类应包含...
总之,创建一个WPF FTP断点上传下载应用涉及到多个技术层面,包括WPF UI设计、FTP协议交互、MVVM模式的实践以及文件操作。通过这样的实践,开发者不仅可以提升WPF应用开发的技能,还能深入理解网络通信和状态管理。
`FtpUtil.java`很可能是一个封装了FTP操作的类,包括连接FTP服务器、登录、设置工作目录、上传文件、下载文件、断开连接等方法。这些方法通过调用Java的`java.net.Socket`类和`commons-net-1.4.1.jar`库中的FTP相关...
上传小于 1M 文件速度要比用 FTP 协议上传文件略快。但对于批量及大文件的传输可能无能为力。后来决定采用 FTP 协议上传文件大于 1M 的文件速度比 HTTP 快。文件越大,上传的速度就比 HTTP 上传的速度快数倍。 二、...