ftp文件上传后大小改变问题解决

本文介绍了FTP上传文件过程中ASCII模式与Binary模式的区别,特别是在不同操作系统中回车换行符的处理方式,强调了Binary模式在大多数情况下的适用性。

原文发表于2010-09-17 16:49:48 网易博客

    前不久,在和另外一个系统做ftp上传联调时,上传过去的文件大小和本地大小一直对不上. 
    后面将文件传输模式设置为binary,在put之前输入binary生效,就好了.这才知道ftp上传文件时默认是文本模式而不是二进制模式.

    2011年5月25日00:35分补充:

    http://dev.firnow.com/course/6_system/linux/Linuxjs/20090309/160187.html 
    ASCII模式和Binary模式的区别是回车换行的处理,Binary模式不对数据进行任何处理,ASCII模式将回车换行转换为本机的回车字符,比如:UNIX下是\n,Windows下是\r\n,Mac下是\r。 
    ASCII模式下会转换文件,不能说是不同系统对回车换行解释不同,而是不同的系统有不同的行结束符。UNIX系统下行结束符是一个字节,即十六进制的0A,而Windows的系统是两个字节,即十六进制的0D0A,所以当你用ASCII方式从UNIX的FTP Server下载文件到Windows系统上时(不管是二进制或者文本文件),每检测到一个字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件,比如可执行文件、压缩包什么的,就肯定不能用了。如果你的文件就是UNIX下的文本文件,你用ASCII模式是正确的,要是误用了Binary模式,你在Windows上看这个文件是没有换行的,里面是一个个的黑方块。 
    一般来说,我们最好都用Binary方式,这样可以保证不出错。如果有文本格式转换的问题,即UNIX格式的文本和DOS格式的文本之间的转换,有很多工具可以做的,不要在ftp传输的时候冒险,尤其是你如果对这些东西不是非常清楚的话。



本文转自leipei博客园博客,原文链接:http://www.cnblogs.com/leipei2352/archive/2011/05/25/2056159.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值