文件传输(file transfer),是指将一个文件或其中的一部分从一个计算机系统传到另一个计算机系统。
定义
文件传输(file transfer)是将一个文件或其中的一部分从一个计算机系统传到另一个计算机系统。将一个文件或其中的一部分从一个计算机系统传到另一个计算机系统。它可能把文件传输至另一计算机中去存储,或访问远程计算机上的文件,或把文件传输至另一计算机上去运行(作为一个程序)或处理(作为数据),或把文件传输至打印机去打印。由于网路中各个计算机的文件系统往往不相同,因此,要建立全网公用的文件传输规则,称作文件传输协议(FTP)。
类型
文件传输的类型有很多种
例如ftp,FTP 是File Transfer Protocol(
文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的
控制文件的双向传输。同时,它也是一个
应用程序(
Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着
FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
远程登录是最早的因特网应用之一,而文件传输则是因特网上第二个开发出来的应用。文件传输是依靠
文件传输协议(
FTP)实现的,它的基本思想是客户机利用类似于
远程登录的方法登录到FTP服务器,然后利用该机文件系统的命令进行操作。事实上,因特网中很多资源都是放在FTP服务器中的,如一些试用版软件、完全免费试用的自由软件等,我们都可以采用FTP的方式大批量的获取。因此,FTP服务与万维网服务在因特网应用领域中都占据了重要的地位。
文件传输协议
在网路环境中有两种文件传输协议模型,即三站模型与两站模型。
①三站模型 文件传输涉及三个站,一个控制站,两个远方服务站。控制站上有控制进程,由用户请求来启动工作,以控制文件的传输。两服务站分别是传输文件的源和目的站,均有服务进程。为了管理和进行文件传输,控制进程与两个远地服务进程三者之间需建立三个连接,控制进程与两个服务进程之间分别建立控制连接,用来交换控制信息、命令与应答。两个服务进程之间需建立数据连接,用来传输文件数据。
②两站模型 文件传输只涉及两个站,本地主机和远方主机。文件的传输和管理是通过通信双方共同建立和使用单一连接,即控制连接和数据连接合而为―。在这个单一连接上,既传输控制信息,也传输数据。 远方主机建立服务进程,以提供访问本地文件的功能。本地主机则兼具控制和服务功能。
文件传输方式
根据移动和存储文件、打印文件和程序输入等目的不同,文件传输有三种工作方式,即信息流方式、压缩方式和信息块方式。
①信息流方式把文件作为字节流传输。文件可分为若干由一系列字节或机器字长为单位的逻辑单元所组成的逻辑记录。在一个记录或一个文件的结尾有“记录结束”或“文件结束”等“结束”标志。“结束”标志由两个字节组成。第一字节为“转义”字节,第二字节为 相应的“结束”字节。如果文件中的数据字节恰与“转义”字节相同,即按字符填充办法处理。也就是说发方在数据字节前多发一“转义”字节,而收方遇到到连续两个“转义”字节时去掉一个,以达到数据的透明传输。
②压缩方式 也是把文件表示成字节序列进行传输,但把其中重复出现的字节(如空白字符)进行压缩,以提高传输效率。为此,这种字节流是由常规数据、压缩数据和控制信息三种成分相互交错组成。毎一成分之前均有一字节指出相关信息。打印文件采用此方式。
③信息块方式把文件表示为一系列信息块进行传输。每块前面有指出该信息块长度的块头。
虚文件概念在计算机系统中,文件格式和数据表示不尽相同,如不同的字符集、编码以及机器字长等。传输文件时为使数据的语义保持不变,需要作相应转换。为了减少转换软件的数量,引入虚文件概念。在网路范围内定义共同的虚文件结构和虚文件传输系统。制定一种标准的逻辑文件结构和数据表示。各个主机在传输文件时,要把自己的文件数据转换成能在网路上传输的标准形式。而目的主机在接收时再把它转换为自己的局部形式。由此解决了不同的文件管理系统之间的不相容问题。
常用的文件传输工具
uploadify
uploadify针对jQuery的免费文件上传插件,可以轻松将单个或多个文件上传到网站上,可控制并发上传的文件数,通过接口参数和CSS控制外观。Web服务器需支持flash和后端开发语言。
FancyUpload
由CSS和XHTML编写样式的Ajax文件上传工具,安装简便,服务器独立,由MooTools模块驱动,可以在任何现代浏览器上使用。
Aurigma Upload Suite(Image Uploader)
这是一个不限大小,不限格式的文件/图片批量上传工具,是收费控件。它支持云端存储和客户端文件处理,支持断点续传,稳定可靠。从8.0.8开始,
Image UploaderMultiple File Upload - JQuery
这个Multiple File Upload Plug-in是JQuery JavaScript库的多文件上传插件,帮助用户选择多个文件同时上传,还可以识别一些简单的错误。
Mootool based Multiple file uploader
这是一个基于MooTools的轻量级多文件上传工具,只有2.5K。有一些简单的
CSS,一个HTML示例文件和一个readme。
AjaxFileUpload
顾名思义,这是一个Ajax文件上传工具,是由 yvind Saltvik创建的Ajaxupload的黑客版。它简化了HTML文档的遍历、处理事件、执行动画,并添加Ajax交互到Web页面。
File upload progress bars with PHP
上传文件时,通过PHP 5.2.x的file upload hooks生成进度条。
Create An Ajax Style File Upload
这个一个Ajax版本的文件上传工具,操作简单。使用Iframe上传文件,页面无刷新,上传文件时会显示一个进度条。
Styling inputs with css and dom
样式文件输入工具,提供标记、CSS和JavaScript,旨在解决设计师无法精细的表达设计思想的问题,支持 IE 5.5+ , Firefox 1.5+ , Safari 2+。
jqUploader
这也是一个jQuery插件,界面上有进度条和百分比。可以在菜单中用html代码直接定义,如最大文件尺寸。