在项目中使用commons-net-3.0.1.jar实现FTP文件的下载,在windows xp上运行正常,但是放到linux上,却出现问题,程序运行到
FTPClient.listFiles()或者FTPClient.retrieveFile()方法时,就停止在那里,什么反应都没有,出现假死状态。google一把,发现很多人也出现了此类问题,最终在一个帖子里找到了解决办法。在调用这两个方法之前,调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。OK,问题解决。
另外,如果程序部署在weblogic上, 也有可能出现一些问题,为什么,因为weblogic自己也有commons-net包,如果weblogic的jar包版本低于你使用的版本,就设置weblogic 的classpath,优先加载工程里的jar包。
分享到:
相关推荐
- **设置工作模式**:根据网络环境选择合适的FTP工作模式,如`ftpClient.enterLocalPassiveMode()`切换到被动模式。 - **文件操作**: - **上传**:`ftpClient.storeFile remoteFilePath, inputStream)`,其中`...
ftp.enterLocalPassiveMode(); // 使用被动模式 FileInputStream fis = new FileInputStream(localFilePath); byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { ftp....
2. **使用客户端连接测试**:可以通过FTP客户端软件(如FileZilla Client)尝试连接到刚配置好的FTP Server,验证是否可以正常登录并访问文件。 #### 三、使用Java实现FTP文件上传 ##### 3.1 Java FTP客户端开发...
6. **设置传输模式**:根据网络环境,可能需要设置为主动模式或被动模式,例如:`client.enterLocalPassiveMode();`进入被动模式。 7. **下载文件**:使用`boolean downloadSuccess = client.retrieveFile(...
client.enterLocalPassiveMode(); // 开启被动模式,便于防火墙穿透 client.retrieveFile("远程文件名", new FileOutputStream("本地保存路径")); } catch (IOException e) { e.printStackTrace(); } finally {...
client.enterLocalPassiveMode(); client.storeFile("/remote/path/file.txt", new FileInputStream("/local/path/file.txt")); client.logout(); client.disconnect(); } catch (IOException e) { e....
client.setFileType(FTP.BINARY_FILE_TYPE); // 设置为二进制模式 ``` **被动模式** 在防火墙或NAT环境中很有用,通过`enterLocalPassiveMode()`启用: ```java client.enterLocalPassiveMode(); ``` **断开连接*...
client.enterLocalPassiveMode(); FileOutputStream fos = new FileOutputStream(localFilePath); client.retrieveFile(remoteFilePath, fos); fos.close(); client.logout(); client.disconnect(); } } } ...
client.enterLocalPassiveMode(); // 启用被动模式 client.setFileType(FTP.BINARY_FILE_TYPE); // 设置为二进制模式 client.changeWorkingDirectory("/root/upload"); // 进入上传根目录 client.storeFile(...
client.enterLocalPassiveMode(); // 设置被动模式 // 上传文件 FileInputStream fis = new FileInputStream("localFilePath"); client.storeFile("remoteFilePath", fis); fis.close(); // 下载文件 ...
client.enterLocalPassiveMode(); // 对于被动模式 client.storeFile("remote_file_path", new FileInputStream("local_file_path")); client.logout(); client.disconnect(); } } ``` 为了提高安全性,我们...
5. **设置参数**:例如设置文件传输模式(`client.setFileType(FTP.BINARY_FILE_TYPE)`)、被动模式(`client.enterLocalPassiveMode()`)等。 6. **上传文件**:使用`client.storeFile(filename, inputstream)`,...
ftpClient.enterLocalPassiveMode(); // 下载文件 String remoteFilePath = "/path/to/remote/file"; String localFilePath = "/path/to/local/file"; OutputStream outputStream = new FileOutputStream...
client.enterLocalPassiveMode(); // 使用被动模式进行数据传输 client.setFileType(FTP.BINARY_FILE_TYPE); // 设置为二进制模式 // 上传文件 FileInputStream fis = new FileInputStream("localfile"); ...
client.enterLocalPassiveMode(); // 被动模式,适用于防火墙环境 // 或 client.enterLocalActiveMode(); // 主动模式 ``` 4. **选择传输格式**:选择二进制模式进行文件传输,防止文本文件格式问题。 ```java ...
client.enterLocalPassiveMode(); // 进入被动模式 ``` 3. **上传文件**: 使用`storeFile()`方法上传本地文件到服务器。 ```java client.setFileType(FTP.BINARY_FILE_TYPE); // 设置为二进制模式,适用于所有类型...
ftpClient.enterLocalPassiveMode(); ftpClient.configure(new FTPClientConfig("cn.com.wechat.ftp.UnixFTPEntryParser")); //这里记得改成你放的位置 FTPFile[] fs = ftpClient.listFiles(); // 得到目录的相应...
这个类继承自`SocketClient`,实现了`FTP`接口,并且实现了`Configurable`接口,允许对FTP连接进行自定义配置。 `FTPClient`的使用通常包含以下几个步骤: 1. **初始化和连接**:首先,创建`FTPClient`实例,然后...
client.setFileType(FTP.BINARY_FILE_TYPE); // Upload a file FileInputStream fis = new FileInputStream("localfile.txt"); client.storeFile("remotefile.txt", fis); fis.close(); // Download a file...