Q:用FTPClient,执行到ftp.storeFile(fileName, inputFile);无反应了
A: ftpclient.enterLocalPassiveMode();
ftp.storeFile(fileName, inputFile);问题解决
原因是:FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的 XXXX端口发送连接请求,建立一条数据链路来传送数据。 PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口 发送连接请求,建立一条数据链路来传送数据。
分享到:
相关推荐
ftp.storeFile(filename, input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } ...
5. **文件传输**:`FTPClient.storeFile(filename, input)`用于上传文件,其中`input`是文件的输入流;`FTPClient.retrieveFile(filename, output)`用于下载文件,`output`是文件的输出流。 6. **退出会话**:完成...
ftp.storeFile(filename, input); ``` 上传完成后记得关闭输入流: ```java input.close(); ``` 7. **退出登录** 使用`logout()`方法退出FTP会话: ```java ftp.logout(); ``` 8. **断开连接** 最后,...
通过使用`FTPClient`,开发者可以方便地建立与FTP服务器之间的连接,并执行诸如上传、下载等操作。 #### 三、基本配置 使用`FTPClient`前,需要完成一些基本的配置步骤: 1. **添加依赖**:首先,确保项目中已经...
if (ftp.storeFile(sSaveFilename, input)) { success = "true"; } else { success = "上传文件到 FTP 服务器时出错!"; } } else { success = "FTP 服务器保存目录错误!"; } // 关闭输入流 input.close...
ftp.storeFile(filename, input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } ...
6. **存储文件**:`ftp.storeFile(filename, input);` 使用`InputStream`作为数据源,将文件上传到FTP服务器。`filename`是目标文件名。 7. **关闭输入流**:`input.close();` 文件上传完成后,关闭输入流。 8. **...
下面我们将详细讲解如何在Android应用中使用FTPClient上传照片到FTP服务器。 首先,确保在项目中添加Apache Commons Net依赖。在Android Studio的build.gradle文件中,添加以下依赖项: ```groovy dependencies { ...
5. 使用`storeFile(filename, input)`上传文件,`filename`是服务器上文件的名称,`input`是包含待上传文件数据的`InputStream`。 6. 关闭输入流,确保资源被正确释放。 7. 退出登录,调用`logout()`。 8. 最后,...
- 使用`storeFile(String filename, InputStream input)`方法将文件内容存入FTP服务器,传入远程文件名和包含文件内容的输入流。 6. **异常处理**:在上传过程中可能会遇到网络问题、权限问题等,因此需要捕获并...