Manages interactions with server files.
The following sections describe
the actions of the
If your ColdFusion applications run on a server
used by multiple customers, consider the security of the files that
could be uploaded or manipulated by
more information, see Configuring and Administering ColdFusion.
File management tags
syntax depends on the
action attribute value. See
the following sections.
ColdFusion 8: Support
for reading and writing
ColdFusion MX 7:
which allows you to specify an alternate variable in which to receive
result parameters. Used for
fixnewline attribute for
action = "append" and
action = "write" actions.
ColdFusion MX 6.1:
Changed file path requirements: if you do
not specify an absolute file path, the path is relative to the ColdFusion
temporary directory, which is returned by the
Changed behavior for
action="read": if the
file starts with a byte order mark (BOM) ColdFusion uses it to determine
the character encoding.
Changed behavior for
now makes filenames unique by appending a incrementing number, 1
for the first file, 2 for the second and so on, to the name. In
ColdFusion, filenames were made unique by appending an additional
"1" for each file, as in 1, 11, 111, and so on.
Changed use of slashes in paths: you can use forward (/) or backward (\) slashes in paths on both UNIX and Windows systems.
Changed file hierarchy requirements: ColdFusion does not require that you put files and directories that you manipulate with this tag below the root of the web server document directory.
Changed directory path requirements for the
a directory path that you specify in the
does not require a trailing slash.
system value of the
temporary value of the
In ColdFusion, it is a synonym for
normal. It might
not work in later releases.
action attribute options
support a new attribute,
archive value of the
is obsolete and has no effect.
<!--- This shows how to write, read, update, and delete a file using CFFILE. This is a view-only example. ---> <!--- <cfif IsDefined("form.formsubmit") is "Yes"> <!--- The form has been submitted, now do the action. ---> <cfif form.action is "new"> <!--- Make a new file. ---> <cffile action="Write" file="#GetTempDirectory()#foobar.txt" output="#form.the_text#"> </cfif> <cfif form.action is "read"> <!--- Read existing file. ---> <cffile action="Read" file="#GetTempDirectory()#foobar.txt" variable="readText"> </cfif> <cfif form.action is "add"> <!--- Update existing file. ---> <cffile action="Append" file="#GetTempDirectory()#foobar.txt" output="#form.the_text#"> </cfif> <cfif form.action is "delete"> <!--- Delete existing fil. ---> <cffile action="Delete" file="#GetTempDirectory()#foobar.txt"> </cfif> </cfif> <!--- Set some variables. ---> <cfparam name="fileExists" default="no"> <cfparam name="readText" default=""> <!--- First, check whether canned file exists. ---> <cfif FileExists("#GetTempDirectory()#foobar.txt") is "Yes"> <cfset fileExists="yes"> </cfif> <!--- Now, make the form that runs the example. ---> <form action="index.cfm" method="POST"> <h4>Type in some text to include in your file:</h4> <p> <cfif fileExists is "yes"> <p>A file exists (foobar.txt, in <cfoutput>#GetTempDirectory()#</cfoutput>). You may add to it, read from it, or delete it. </p> </cfif> <!--- If reading from a form, let that information display in textarea. ---> <textarea name="the_text" cols="40" rows="5"> <cfif readText is not ""> <cfoutput>#readText#</cfoutput> </cfif></textarea> <!--- Select from the actions depending on whether the file exists. ---> <select name="action"> <cfif fileExists is "no"> <option value="new">Make new file </cfif> <cfif fileExists is "yes"> <option value="add">Add to existing file <option value="delete">Delete file <option value="read">Read existing file </cfif> </select> <input type="Hidden" name="formsubmit" value="yes"> <input type="Submit" name="" value="make my changes"> </form> --->