FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种模式:文本模式和二进制模式。文本传输器使用ASCII字符,并由回车键和换行符分开,而二进制不用转换或格式化就可传字符,二进制模式比文本模式更快,并且可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式。
一般来说: 如果你用错误的模式传输你的图片,你将会无法看到图片,看到的会是乱码。 如果你用错误模式上传CGI脚本,那么就将无法运行你的脚本,会看到类似Server 500 Error的出错信息。
所以你必须使用正确的模式,图片和执行文件必须用BINARY模式,CGI脚本和普通HTML文件用ASCII模式上传.
ASCII 和BINARY模式区别:
用HTML 和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。
BINARY模式用来传送可执行文件,压缩文件,和图片文件。
如果你用ASCII模式传,会显示一堆乱码,你必须重新用BINARY模式传。
对于第二种情况,是因为有很多ftp服务器和客户端软件能自动识别文件类型,并采取相应的传输方式。
ftp是应用层协议,和具体操作系统无关 .
ASCII 模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如Unix下是\n,Windows下是\r\n,Mac下是\r
ascii模式下会转换文件,不能说是不同系统对回车换行解释不同,而是不同的系统有不同的行结束符:
unix系统下行结束符是一个字节,即十六进制的0A
ms的系统是两个字节,即十六进制的0D0A
所以当你用ascii方式从unix的ftp server下载文件时(不管是二进制或者文本文件),每检测到一个字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件比如可执行文件、压缩包什么的,就肯定不能用了。如果你的文件就是unix下的文本文件,你用 ascii模式是正确的,要是误用了binary模式,你在windows上看这个文件是没有换行的,里面是一个个的黑方块。
一般来说,我们最好都用binary方式,这样可以保证不出错。如果有文本格式转换的问题,即unix格式的文本和dos格式的文本之间的转换,有很多工具可以做的,不要在ftp传输的时候冒险,尤其是你如果对这些东西不是非常清楚的话。
可以使用MIME,把所有的字符,转换成0~128之间的字符,然后传送,在接受方再将接收到的字符MIME反向转换。通常我们发送邮件,就是使用这样的字符转换方式。
------------------------------------------------------------------
补充:文本模式和二进制模式传文本文件的具体区别可以通过在linux下使用cat -A 文件名看到两者的区别,当然前提是在windows下上传的文本为dos格式,这个可以用高级的文本编辑器看如ultraedit等。两者的区别是二进制模式上传的文本比文本模式多一个^M符号,这个就是windows下dos格式的/r回车符号,也就是上面提到的十六进制的0D,在vi下使用全局替换:%s/^M//g[^M使用Ctrl+V+M而不是直接输入^M]去掉所有的回车符或者使用dos2unix file进行转换,这样保存后或者生成后的文件就和文本模式上传的文件一样了
分享到:
相关推荐
二进制模式是FTP的一种传输模式,它将文件以原始的字节流形式进行传输,不会尝试解析或转换文件内容。相比之下,ASCII(文本)模式适用于纯文本文件,FTP客户端会在传输过程中进行必要的字符编码转换,如从UTF-8转换...
3. 两种传输模式:FTP有两种传输模式,ASCII传输模式和二进制数据传输模式。 FTP协议的工作原理: 1. 控制连接:FTP有两个过程,一个是控制连接,一个是数据传输。控制连接用于发送指令给服务器以及等待服务器响应...
FTP的传输模式有两种:ASCII传输模式和二进制数据传输模式。ASCII传输方式适用于传输文本文件,而二进制传输模式适用于传输非文本文件,如程序、数据库、字处理文件或压缩文件。 在FTP协议中,标准命令TCP端口号为...
FTP 协议的任务是从一台计算机将文件传送到另一台计算机,FTP 的传输模式有两种:ASCII 传输模式和二进制数据传输模式。ASCII 传输方式适用于传输文本文件,而二进制数据传输模式适用于传输二进制文件。 FTP 服务器...
FTP数据传输有两种模式:ASCII模式(文本模式)和二进制模式。ASCII模式适用于文本文件,传输时会进行字符编码转换;二进制模式则不进行转换,适用于所有类型的数据,包括图像、音频和视频文件。 总的来说,FTP是...
3. 选择数据传输模式:客户端可以设置ASCII或二进制模式,服务器需根据此模式处理数据传输。 4. 改变目录:客户端可以发送命令更改当前工作目录,服务器需要维护用户的状态信息,包括当前目录。 在设计报告中,除了...
Linux tftp命令 Linux tftp命令用于传输文件。 FTP让用户得以下载存放于远端主机的文件,也能将文件上传...binary:二进制传输模式 ascii:ascii 传送模式 rexmt:设置包传输的超时时间 timeout:设置重传的超时时间 h
FTP 可用多种格式传输文件,通常由系统决定,大多数系统(包括 UNIX 系统)只有两种模式:文本模式(ASCII)和二进制模式(BIN/IMAGE)。 二、VB 实现 FTP 客户端的设计与实现 VB 可以用于实现 FTP 客户端,主要...
3. binary:设定以二进制方式传送文件,适用于所有类型的文件,包括图像、音频、视频等。 4. bye:结束与FTP服务器的连接,并退出FTP会话。 5. case:当设置为ON时,使用MGET命令获取的文件名在本地会转换为小写。 6...
在二进制模式下,FTP客户端不会尝试对文件内容进行解析或转换,而是逐字节地传输文件,这对于包含非ASCII字符集或者结构化的二进制文件(如图片、视频、PDF文档等)尤其重要。如果使用文本模式(ASCII或ASCII Mode)...
FTP 协议的传输模式有两种:ASCII 传输模式和二进制数据传输模式。ASCII 传输方式假定用户正在拷贝的文件包含的简单 ASCII 码文本,如果在远程机器上运行的不是 UNIX,当文件传输时 ftp 通常会自动地调整文件的内容...
7. **二进制与文本模式**:FTP支持两种传输模式,二进制模式(用于图像、程序等非文本文件)和ASCII文本模式(用于纯文本文件)。不同的模式会影响数据如何在不同系统间转换。 8. **多线程编程**:在MFC中,可能...
FTP 是一种标准的文件传输协议,允许用户传输 ASCII 文件和二进制文件。在 FTP 会话过程中,用户可以通过使用 FTP 客户程序连接到另一台计算机上,从而在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机...
第1节FTP基本命令介绍 文件传输软件的使用格式为:FTP,若连 接成功,系统将...BINARY切换传输模式为二进制模式(除文字文件外皆用此模式); IMAGE相当于BINARY: TYPE让你更改或显示目前传输模式。 3)BYE、QUIT
- 图像文件类型(二进制文件类型):用于传输不受格式转换影响的二进制文件,如图片、程序等。 - 本地文件类型:针对不同字节大小的系统,指定字节大小进行传输。 2. 格式控制: - 非打印:默认,不包含特殊格式...
文本模式使用 ASCII 码,并由回车键和换行符分开,而二进制模式不用转换或格式化就可以传字符,二进制模式比文本模式更快,并且可以传输所有 ASCII 值。 5. 断开连接 断开连接是 FTP 的一个基本功能,用于断开 FTP...
* binary:设定以二进制方式传送文件 * ascii:设定以 ASCII 方式传送文件(缺省值) * status:显示当前 FTP 状态 * close:关闭远程连接 * quit:结束 ftp 工作 * bye:结束 ftp 工作 除了以上命令外,FTP 还支持...
FTP支持两种主要的数据传输方式:ASCII模式和二进制模式。ASCII模式主要用于文本文件的传输,而二进制模式则用于图像、声音等非文本文件的传输。 #### 二、常用FTP命令 1. **设置传输模式** - `ASCII`:文本模式。...
3. **ASCII和二进制模式**:FTP传输有两种数据类型,ASCII(文本)模式和二进制(binary)模式。文本模式适用于纯文本文件,而二进制模式适用于图片、音频、视频和其他非文本文件。 4. **FTP会话**:FTP操作是在一个...