Brian F爱
从专注于角图,Web技术以yobet英雄联盟及波特兰的Node.js的Google开发人员专家中学习。
广告 ·ultimatecourses.com.
用终极课程学习角度正确的方式

FTP外立型耐核效用

在最近的工作项目中,我们需要一种更简单的方法来使用内置于Adobe ColdFusion中的FTP解决方案。对COFFUSCEMICE的当前实施CFFTP的几个缺点是:

  • 必须在模板页面级别存储缓存的连接变量。使用类门面,我们能够将持久连接的连接存储在组件中。
  • 删除文件和文件夹不会检查文件是否首先存在,我们的立面照顾。如果文件不存在,并且我们正在尝试删除目录或文件,它会抛出我们可以捕获的自定义异常类型。
  • 如果连接在远程服务器上关闭,我们希望我们的立面来处理重新连接,而不是CFFTP的每个实现。
  • 递归放置和删除目录。这对我们的项目来说是一个很大的事项,在特定于项目的代码中实现这一点,但要有一般用途方法putdirectory()recouplectory()

我们的Facade /实用程序确实有依赖于我们的异常工厂,它存储在其中应用程序.Exceptions.应用程序变量。如果您想使用此代码,您可以使用自己的异常处理或简单的CFThrow标签替换这些代码。我们的实用程序类还使用遵循Java日志记录实用程序logf4j原则的记录工厂。您可以了解有关我简单的日志记录实用程序的更多信息。最后,门面使用CFML(基于标签)而不是更加简洁的CFScript作为我们的项目所必需的。

打开和关闭连接

打开和关闭连接就像呼叫的那样简单打开()要么关()方法。打开连接时,必须指定连接参数:服务器用户名,和密码。该类存储连接参数,以便您也可以使用Setter:SetServer()setusername(),和设置密码()。以下是打开连接的示例:

<<cfset.变量.ftp_server.ftp_server.='ftp.remoteserver.com.'><cfset.变量.ftp \ _username.='用户名'><cfset.变量.ftp \ _password.='密码'><cfset.变量.ftp \ _timeout.=1200.><cfset.ftputil.open(服务器=变量.ftp \ _server,用户名=变量.ftp \ _username,密码=变量.ftp \ _password,超时=变量.ftp \ _timeout)>

关闭连接很简单,只需致电关闭方法:

<cfset.ftputil.close()>

如果要重置连接,这将关闭并重新打开连接,只需调用重置方法:

<cfset.ftputil.reset()>

文件和目录操作

要开始,让我们看看简单的存在方法。你可以打电话存在于entirectory()要么存在吗()检查文件是否存在。你可以使用getfile()从远程服务器下载文件的方法。要上传文件,请使用Putfile()putdirectory()方法;你可以使用removefile()recouplectory()删除文件和目录的方法。

请注意putdirectory()deletedirectory()方法是递归。这些将将整个本地目录和所有文件夹和文件上传到远程服务器,或删除远程目录中的所有文件和文件夹。以下是方法签名:

  • 存在指示(必需的字符串目录)
  • 存在文件(必需的字符串文件)
  • getfile(必需的字符串源,必需字符串目标,布尔覆盖= true)
  • PUTFILE(必需的字符串源,必需字符串目的地)
  • PutDirectory(必需的字符串源,必需的字符串目的地,布尔含有隐藏文件= true,布尔includehiddendirectories = true)
  • removefile(必需的字符串文件,布尔validateexists = true)
  • reamedirectory(必需的字符串目录,布尔validateexists = true)

您还可以更改目录并获取当前目录(以及当前目录的URL),并使用以下方法列出目录内容:

  • getCurrentDirectory()
  • getcurrenturl()
  • ListDirectory(String Directory = getCurrentDirectory())
  • vilectorcortory(必需的字符串目录)

源代码

下载

Brian F爱

嗨,我是布莱恩。我对类型名称,Angular和node.js感兴趣我嫁给了我最好的朋友邦妮,我住在波特兰和我滑雪(很多)。