用FTPClient上传文件,执行this.ftpClient.storeFile(fileName, inStream)报错
2017-01-12 10:55
821 查看
this.ftpClient.storeFile(fileName, inStream) 方法执行时无反应,最后提示错误
原因:代码中加了多了一个设置 this.ftpClient.enterLocalPassiveMode(); //将传输模式设置成被动,这种情况如果服务器没有做特殊设置的话是正常的,现在去掉这个设置,就可以正常上传文件了。
具体采用什么样的传输方式,跟服务器设置有关。把从网上搜到的FTP上传主动和被动模式介绍放在下边:
一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
原因:代码中加了多了一个设置 this.ftpClient.enterLocalPassiveMode(); //将传输模式设置成被动,这种情况如果服务器没有做特殊设置的话是正常的,现在去掉这个设置,就可以正常上传文件了。
具体采用什么样的传输方式,跟服务器设置有关。把从网上搜到的FTP上传主动和被动模式介绍放在下边:
一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。
1) 控制连接
客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。2) 数据连接
FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
相关文章推荐
- java 用FTPClient上传文件,执行this.ftpClient.storeFile(fileName, inStream)报错
- FTPClient ftp.storeFile上传文件时服务器无响应的原因
- 用FTPClient,执行到ftp.storeFile(fileName, inputFile);无反应
- Debug记录 - taotao项目 - FTPClient对象 storeFile方法 很慢 上传文件大小为 0
- 用FTPClient,执行到ftp.storeFile(fileName, inputFile);无反应了
- FTPClient 上传文件调用storeFile方法SocketException问题
- sun.net.ftp.FtpClient 上传文件和文件夹应用(改变相关文件中的内容)
- 解决FTPClient上传文件时文件被破坏问题
- java的ftp上传文件程序(FtpClient类)
- org.apache.commons.net.ftp.FTPClient上传文件大小改变的解决方法
- FTPClient 上传下载文件
- 利用FtpClient实现上传下载及获得文件目录
- Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题
- Asp.net 文件上传的 FileUpload FileName 和 FileUpload PostedFile.FileName的细节问题
- FtpClient.storeFile返回false解决方法
- org.apache.commons.net.ftp.FTPClient----根据文件名,路径检索文件 FTP上传 下载 删除文件
- 获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName
- ASP.NET中用HttpPostedFile.SaveAs(FileName)方法上传文件,文件大小限制
- FTPClient上传文件时zip文件损坏的解决方法
- struts2 上传文件 FtpClient ftp操作