Java使用FTP上传文件被损坏的问题

http://192.210.60.138/dz/forum.php?mod=viewthread&tid=21&fromuid=1

(出处: IStudy)

现象:在制作图像文件上传FTP服务器的时候,网页打开图像文件无法显示,导出图像发现图像已经被损坏了原因:在采用FTP上传的时候(import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;)用FTP的库操作,上传文件成功,但是文件却被损坏了
FTP协议规定了两种传输方式分别是ASCII与binary方式
  • ASCII方式,这种机制指,在针对传输内容是ASCII码文本时,文件内容会被调整,有时会造成传输的文件被损坏,ASCII方式会把文件中的某些字符串位丢弃,所以不能保证文件数据的每一位都是重要的。

  • 二进制方式,首先二进制方式保证了文件内容所有数据位都是重要的。

  • 经过验证在传输文件类型为非文本内容的文件,使用ASCII传输方式造成copy的文件已经损坏。

网上有很多FTP上传的代码,但是没有详细解释为什么传输失败
ftp.setFileType(FTP.BINARY_FILE_TYPE/FTP.ASCII_FILE_TYPE
红色标注的参数为二进制或者ASCLL码
FTP上传如果出现文件错误不防改为二进制试一试