zoukankan      html  css  js  c++  java
  • FTP传输一定要注意使用二进制模式

    一个问题困扰了我一下午,刚刚才解决。我要上传一个PHP程序,其中用了sqlite数据库,没想到上传完以后无论如何也不能用,总是数据库查询失败。我登录上SSH,把几乎每个php都调试了一遍,还是没法解决。最终请来大牛帮助,才发现服务器上的sqlite数据库与本地的MD5值不一样。于是我又用Filezilla吧数据库上传了一遍,没想到的是,MD5值仍然和本地的文件不同。这时我突然想起了以前用gcc在Windows下强制输出 而不是 的窘境,于是把Filezilla的上传模式从“自动选择”改成了“二进制模式”,再次上传,问题终于解决了。

    FTP传输的两种模式

    1.ASCII传输方式:
    
    假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
    
    但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。
    
    2.二进制传输模式:
    
    在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
    
    如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。
  • 相关阅读:
    flash背景透明、置底、禁止放大 右键菜单
    SQL 命令
    php无刷新翻页,单独的一个文件加上一个JS即可搞定
    php jquery ajax无刷新评论 无刷新翻页,字数统计 绝对可以用
    input点击隐藏显示层
    jquery延迟加载图片
    用Javascript读取CheckBox数组的值
    链表结构_C语言实现
    struts2_自定义错误提示
    struts2_自定义对象设置
  • 原文地址:https://www.cnblogs.com/tham/p/6827397.html
Copyright © 2011-2022 走看看