Manages interactions with server files.
Different combinations cause different attributes to be

  <cffile action="read">


Attribute Reference

action string

Type of file manipulation that the tag performs.
  • append
  • copy
  • delete
  • move
  • read
  • readbinary
  • rename
  • upload
  • uploadall
  • write

file string

Pathname of the file.

mode string

Applies only to UNIX and Linux. Permissions. Octal values
of Unix chmod command. Assigned to owner, group, and
other, respectively.

output string

String to add to the file

addnewline boolean
Default: true

Yes: appends newline character to text written to file
  • true
  • false

attributes string

Applies to Windows. A comma-delimited list of attributes
to set on the file.

If omitted, the file's attributes are maintained.
  • readonly
  • hidden
  • normal
  • system
  • temporary

charset string

The character encoding in which the file contents is

For more information on character encodings, see:
  • utf-8
  • iso-8859-1
  • windows-1252
  • us-ascii
  • shift_jis
  • iso-2022-jp
  • euc-jp
  • euc-kr
  • big5
  • euc-cn
  • utf-16

source string

Pathname of the file (during copy).

destination string

Pathname of a directory or file on web server
(during copy).

variable string

Name of variable to contain contents of text file.

filefield string

Name of form field used to select the file.

Do not use pound signs (#) to specify the field name.

nameconflict string

Action to take if filename is the same as that of a file
in the directory.
  • error
  • skip
  • overwrite
  • makeunique

accept string

Limits the MIME types to accept. Comma-delimited list. For
example, to permit JPG and Microsoft Word file uploads:

accept = "image/jpg, application/msword"

result variableName
Default: cffile

Allows you to specify a name for the variable in which cffile
returns the result (or status) parameters. If you do not specify
a value for this attribute, cffile uses the prefix "cffile".

fixnewline string
Default: false

* Yes: changes embedded line-ending characters in string
variables to operating-system specific line endings
* No: (default) do not change embedded line-ending
characters in string variables.
  • true
  • false

cachedwithin numeric

Lucee 5+ Timespan, using the CreateTimeSpan function. If original
file date falls within the time span, cached file data is
used. CreateTimeSpan defines a period from the present, back.

Links more information about cffile

Sample code using the cffile tag

File Write

fileWrite(expandPath("./myFile.txt"), "Here's some content for my file.");

File Append - There is no fileAppend() so we access the file and use fileWriteLine()

myFile = fileOpen(expandPath("./myFile.txt"), "append"); 
 fileWriteLine(myFile, "Here's some new content."); 

File Read

myFile = fileRead(expandPath("./myFile.txt"));

File Read Binary

myImageBinary = fileReadBinary(expandPath("./myImage.jpg"));

File Rename - Since there is no fileRename(), fileMove() works just as well

fileMove(expandPath("./myFile.txt"), expandPath("./myNewFileName.txt"));

File Copy

fileCopy(expandPath("./myFile.txt"), expandPath("./some/other/path"));

File Move

fileMove(expandPath("./myFile.txt"), expandPath("./some/other/path"));

File Delete


File Upload

fileUpload(getTempDirectory(), "form.myFile", " ", "makeunique");

File Upload All

fileUploadAll(getTempDirectory(), " ", "makeunique");

Write the contents of a variable to a file.

<cffile action="write" file="#expandPath("./myFile.txt")#" output="Here's some content for my file.">

Append content to the end of a file.

<cffile action="append" file="#expandPath("./myFile.txt")#" attributes="normal" output="Here's some new content.">

Read a file into a variable

<cffile action="read" file="#expandPath("./myFile.txt")#" variable="myFile">

File Read Binary

<cffile action="readBinary" file="#expandPath("./myImage.jpg")#" variable="myImageBinary">

Rename a file

<cffile action="rename" source="#expandPath("./myFile.txt")#" destination="#expandPath("./myNewFileName.txt")#" attributes="normal">

Copy a file

<cffile action="copy" source="#expandPath("./myFile.txt")#" destination="#expandPath("./some/other/path")#">

Move a file

<cffile action="move" source="#expandPath("./myFile.txt")#" destination="#expandPath("./some/other/path")#">

Delete a file

<cffile action="delete" file="#expandPath("./myFile.txt")#">

Upload the file contained in the myFile field. Always upload to a directory outside of the webroot, validate the file extension, file content and then only if necessary copy it back to the web root.

<cffile action="upload" destination="#getTempDirectory()#" filefield="form.myFile" nameconflict="makeunique">

CF 10+ Checks file extensions against a whitelist of allowed file extensions. You must set strict=false when specifying a file extension list.

<cffile action="upload" accept=".png,.jpg" strict="false" destination="#getTempDirectory()#" filefield="form.myFile" nameconflict="makeunique">

Upload all files in the form scope.

<cffile action="uploadall" destination="#getTempDirectory()#" nameconflict="makeunique">

Signup for cfbreak to stay updated on the latest news from the ColdFusion / CFML community. One email, every friday.

Fork me on GitHub