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

From 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="me@home.com"


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 dir-list 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>


后页
前页
目录
北极星书库