Whatever message this page gives is out now! Go check it out!

cfftp: Connection: file and directory operations

Last update:
May 18, 2026

Description

To perform file and directory operations with cfftp, use this form of the cfftp tag.

Syntax

<cfftp 
action = "action"
ASCIIExtensionList = "extensions" 
connection = "connection name" 
directory = "directory name" 
existing = "file or directory name" 
failIfExists = "yes|no" 
item = "directory or file" 
localFile = "filename" 
name = "query name" 
new = "file or directory name" 
passive = "yes|no" 
password = "password" 
proxyServer = "proxy server" 
remoteFile = "filename" 
result = "result name" 
server = "server"
systemtype = "windows | unix"
timeout = "time-out in seconds" 
transferMode = "ASCII FTP|Binary FTP|Auto FTP" 
username = "name">

cfscript equivalent of the syntax

<cfscript> 
    cfftp(action="action", ASCIIExtensionList = "extensions", connection = "connection name", directory = "directory name", existing = "file or directory name", failIfExists = "yes|no", item = "directory or file", localFile = "filename", name = "query name", new = "file or directory name", passive = "yes|no", password = "password", proxyServer = "proxy server", remoteFile = "filename", result = "result name", server = "server", systemtype = "windows | unix", timeout = "time-out in seconds", transferMode = "ASCII FTP|Binary FTP|Auto FTP", username = "name") 
</cfscript>
Note: You can specify this tag's attributes in an attributeCollection attribute whose value is a structure. Specify the structure name in the attributeCollection attribute and use the tag's attribute names as structure keys.

See also

Attributes

Attribute
Req/Opt
Default
Description
action
Required if connection is not cached
FTP operation to perform:
  • changedir
  • createDir
  • listDir
  • removeDir
  • getFile
  • putFile
  • rename
  • remove
  • getCurrentDir
  • getCurrentURL
  • existsDir
  • existsFile
  • exists
ASCIIExtensionList
Optional
txt;htm;html; cfm;cfml;shtm; shtml;css;asp;asa
Delimited list of file extensions that force ASCII transfer mode, if transferMode = "auto".
connection
Required if action = "open" or "closed"
The name of the FTP connection.Used to cache a new FTP connection or to reuse an existing connection.
directory
Required if action = "changedir", "createDir", "listDir", or "existsDir"
Directory on which to perform an operation.
existing
Required if action = "rename"
Current name of the file or directory on the remote server.
failIfExists
Optional
yes
  • yes: If a local file with same name exists, the getFile action fails.
  • no
item
Required if action = "exists" or "remove"
Object of these actions: file or directory.
localFile
Required if action = "getFile" or "putFile"
Name of the file on the local file system. For more information, see Usage.
name
Required if action = "listDir"
Query name of directory listing.
new
Required if action = "rename"
New name of file or directory on the remote server.
passive
Optional
no
  • yes: enables passive mode.
  • no
password
Required if action = "open"
Password to log in the user.
proxyServer
Optional
String. Name of the proxy servers to use, if proxy access is specified.
remoteFile
Required if action = "getFile", "putFile", or "existsFile"
Name of the file on the FTP server file system.
result
Optional
Specifies a name for the structure in which cfftp stores the returnValue variable. If set, this value replaces cfftp as the prefix to use when accessing returnVariable. For more information, see Usage.
server
Required if FTP connection is not cached
FTP server to which to connect; for example, ftp.myserver.com.
systemType
Optional
Possible values for the attribute are:
  • Windows: If specified, CFFTP treats the response as Windows-style directory listing.
  • Unix: If specified, CFFTP treats the response as Unix-Style directory listing.
timeout
Optional
30 seconds
The length of time, in seconds, that ColdFusion waits for a response from the FTP server.Used with action = "open" for a cached connection.
transferMode
Optional
auto
  • ASCII FTP transfer mode
  • Binary FTP transfer mode
  • Auto FTP transfer mode
username
Required if connection is not cached
User name to pass in the FTP operation.

Usage

If you use connection caching to an active FTP connection, you do not have to respecify the username, password, or server connection attributes.Changing a cached connection, such as changing retryCount or timeout values, might require reestablishing the connection. If action = "listDir", the attributes column returns directory or normal. Other platform-specific values, such as hidden and system, are no longer supported.

If action = "listDir", a mode column is returned. The column contains an octal string representation of UNIX permissions; for example, "777."The cfftp.returnValue variable provides the return value for these actions:
  • getCurrentDir
  • getCurrentURL
  • existsDir
  • existsFile
  • exists For more information, see the Developing ColdFusion Applications. For more information, see the section Performing file operations with cfftp in Developing ColdFusion Applications.

localFile attribute

Use the following syntax to specify an in-memory file, which is not written to disk, as the local file. In-memory files speed processing of transient data.
ram:///filepath
The filepath can include directories, for example ram:///petStore/images/poodle.jpg. Create the directories in the path before you specify the file. For more information on using in-memory files, see Working with in-memory files in Optimizing ColdFusion applications in the Developing ColdFusion Applications.

Action (cfftp.ReturnValue variable)

The results of an action determine the value of the returnValue variable, as the following table shows:
cfftp action
Value of cfftp.returnValue
getCurrentDir
String. Current directory.
getCurrentURL
String. Current URL.
existsDir
yes or no.
existsFile
yes or no.
exists
yes or no.
To access the returnValue variable, you must prefix it with either cfftp or the value specified by the result attribute, if it is set. The result attribute provides a way for cfftp calls from multiple pages, possibly at the same time, to avoid overwriting the results of one with another. If you set the result attribute to myResult, for example, you would access the returnVariable variable as myResult.returnVariable. Otherwise, you would access it as cfftp.returnVariable.

Example

The following example opens a connection and gets a file that lists file or directory name, path, URL, length, and modification date:
<p>Open a connection 
<cfftp connection = "myConnection" 
username = "myUserName" 
password = "myUserName@allaire.com" 
server = "ftp.allaire.com" 
action = "open" 
stopOnError = "Yes"> 

<p>Did it succeed? <cfoutput>#cfftp.succeeded#</cfoutput> 
<cfftp connection = "myConnection" 
action = "LISTDIR" 
stopOnError = "Yes" 
name = "ListDirs" 
directory = "/"> 

<p>FTP Directory Listing:<br> 
<cftable query = "ListDirs" HTMLTable = "Yes" colHeaders = "Yes"> 
<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 = "#DateFormat(lastmodified)#"> 
<cfcol header = "<b>IsDirectory</b>" text = "#isdirectory#"> 
</cftable> 

<p>Move Image File to Remote Server:<br></p> 
<!--- The image will be put into the root directory of the FTP server unless 
otherwise noted, i.e., remoteFile = "somewhere_put.jpg" vs remoteFile = "/support/somewhere_put.jpg" 
---> 
<cfftp 
connection = "myConnection" 
action = "putFile" 
name = "uploadFile" 
transferMode = "binary" 
localFile = "C:\files\upload\somewhere.jpg" 
remoteFile = "somewhere_put.jpg"> 
<p>Did it succeed? <cfoutput>#cfftp.succeeded#</cfoutput> 

<p>Close the connection: 
<cfftp connection = "myConnection" 
action = "close" 
stopOnError = "Yes"> 
<p>Did it succeed? <cfoutput>#cfftp.succeeded#</cfoutput>

Share this page

Was this page helpful?
We're glad. Tell us how this page helped.
We're sorry. Can you tell us what didn't work for you?
Thank you for your feedback. Your response will help improve this page.

On this page