万卷书>>电脑书籍>>网页制作>>网页制作软件使用>>ColdFusion 初级教程

WANJUANSHU.COM

连接缓存

一旦用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>

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书