-->ColdFusion 初级教程-->连接缓存

ColdFusion

后页 前页
目录
北极星书库
连接缓存


一旦用CFFTP建立了一个连接,你可以再次使用该连接,执行附加的FTP操作。要实现这一点,在第一次建立连接时要用CONECTION属性定义并命名一个FTP连接对象。此对象用于保存与连接有关的信息,任何附加的FTP操作只要使用相同的CONECTION名字,即可自动使用存储在连接对象中的信息。这项特性节省了连接和登录到FTP服务器的时间,从而提高了文件传输操作的效率。


当你使用一个FTP连接时,你不需要重新指定下列属性:


· USERNAME


· PASSWORD


· SERVER


在这种情况下,如果使用了框架(frame),则你应确保当多个请求同时到达时,只有一个框架将使用连接对象。


跨多个文件的连接缓存


CFFTP缓存只能维持在当前的网页中,除非你显式地将一个CFFTP连接分配给一个应用程序范围或session范围的变量。将一个CFFTP连接分配给一个Application变量对象有可能会出现问题,因为有可能会有多个用户同时访问同一个连接对象。为CFFTP连接创建一个Session变量是比较合适的。


将FTP连接名分配给一个session变量即可实现session范围内的连接缓存。如下例所示:


<CFFTP ACTION=connect


USERNAME="anonymous"


PASSWORD="[email protected]"


SERVER="ftp.eclipse.com"


CONNECTION="Session.myconnection">


在这个例子中,连接缓存在当前Session的所有程序文件中有效。当然,你首先应确保你的应用程序允许了Session变量。


注意:要修改一个缓存的连接,例如改变RETRYCOUNT或TIMEOUT的值,则必须重新建立该连接。


连接缓存的操作和属性


下表显示了使用连接缓存进行各种操作所需的CFFTP属性,如果没有使用连接缓存,则还需指定USERNAME, PASSWORD和SERVER属性。


CFFTP各操作所需的属性

操作

属性

操作

属性

Open

Rename

EXISTING

NEW

Close

Remove

SERVER

ITEM

ChangeDir

DIRECTORY

GetCurrentDir

CreateDir

DIRECTORY

GetCurrentURL

ListDir

NAME

DIRECTORY

ExistsDir

DIRECTORY

GetFile

LOCALFILE

REMOTEFILE

ExistsFile

REMOTEFILE

PutFile

LOCALFILE

REMOTEFILE

Exists

ITEM


例子:一个FTP Session


下面的例子打开一个FTP连接,获取文件列表,显示文件或目录的名字,路径,URL,长度,以及修改日期。例中使用了连接缓存,并允许了自动检测错误。


<--- open FTP connection --->


<CFFTP CONNECTION=FTP


USERNAME="betauser"


PASSWORD="monroe"


SERVER="beta.company.com"


ACTION="Open"


STOPONERROR="Yes">


<--- get current directory name --->


<CFFTP CONNECTION=FTP


ACTION="GetCurrentDir"


STOPONERROR="Yes">


<--- output directory name --->


<CFOUTPUT>


FTP directory listing of #cfftp.returnvalue#.<p>


</CFOUTPUT>


<--- get directory info --->


<CFFTP CONNECTION=FTP


ACTION="listdir"


DIRECTORY="/*."


NAME="q"


STOPONERROR="Yes">


<--- output dirlist results --->


<HR>


<P>FTP Directory Listing:</P>


<CFTABLE QUERY="q" HTMLTABLE>


<CFCOL HEADER="<B>Name</B>" TEXT="#name#">


<CFCOL HEADER="<B>Path</B>" TEXT="#path#">


<CFCOL HEADER="<B>URL</B>" TEXT="#url#">


<CFCOL HEADER="<B>Length</B>" TEXT="#length#">


<CFCOL HEADER="<B>LastModified</B>"


TEXT="Date(Format#lastmodified#)">


<CFCOL HEADER="<B>IsDirectory</B>"


TEXT="#isdirectory#">


</CFTABLE>


后页
前页
目录
北极星书库