FtpClient.storeFile返回false,本地测试可以,部署到服务器不可以
2017-04-25 16:19
696 查看
A: 加上ftpclient.enterLocalPassiveMode();
ftp.storeFile(fileName, inputFile);问题解决
补充说明:FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上或者其他服务器上面,由于安全限制,可能某些端口没有开启,所以就出现阻塞。
/**ftp连接方式**/主动 FTP : 命令连接:客户端 >1024 端口 -> 服务器 21 端口 数据连接:客户端 >1024 端口 <- 服务器 20 端口
被动 FTP : 命令连接:客户端 >1024 端口 -> 服务器 21 端口 数据连接:客户端 >1024 端口 -> 服务器 >1024 端口
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立 一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链 路来传送数据。
相关文章推荐
- FtpClient.storeFile返回false,本地测试可以,部署到服务器不可以
- FtpClient.storeFile()函数总是返回false
- FtpClient.storeFile返回false解决方法
- FTPClient ftp.storeFile上传文件时服务器无响应的原因
- FTPClient.changeWorkingDirectory(filePath)一直返回false的问题
- java 用FTPClient上传文件,执行this.ftpClient.storeFile(fileName, inStream)报错
- ftp服务端本地测试用ftp://localhost或者127.0.0.1都可以测试成功,但是一旦用本机IP就不行
- MemcachedClient.store 一直返回false?
- 用FTPClient,执行到ftp.storeFile(fileName, inputFile);无反应
- FTPClient 上传文件调用storeFile方法SocketException问题
- Debug记录 - taotao项目 - FTPClient对象 storeFile方法 很慢 上传文件大小为 0
- 在服务器上部署项目后新增一个访问端口,服务器本地可以访问项目,但是外网访问不了
- webdrive可以把FTP服务器的文件目录映射到本地磁盘
- 阿里云上部署webservice或者网站,服务器本身测试可以整成使用,但是在其他机器上调用时找不到网页或者webservice
- 本地测试服务器环境部署 && iis 信息服务管理
- 一种在本地搭载一个服务器的工具和方法,Android开发测试网络视频可以用
- php 在linux 用file_exists() 函数判断 另外一台服务器映射过来的文件是否存在 总是返回false
- 本地异步通知发送 正常,但是部署服务到服务器上,发送http请求,返回就是验证失败
- 为什么本地测试requiredfieldvalidator可以,但上传到服务器就验证不了
- 用FTPClient,执行到ftp.storeFile(fileName, inputFile);无反应了