cfdocs.org /

Description

Writes a text file on the server, based on dynamic content. You can create static HTML files from the content, or log actions in a text file.

Syntax

<cffile  
    action = "write"  
    file = "full pathname" 
    output = "content" 
    addNewLine = "yes|no" 
    attributes = "file attributes list" 
    charset = "character set option"  
    fixnewline = "yes|no" 
    mode = "permission">
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

cfdirectory

History

See the History section of the main cffile tag page.

Attributes

Attribute

Req/Opt

Default

Description

action

Required

Type of file manipulation that the tag performs.

file

Required

Pathname of the file to write.

If not an absolute path (starting with a drive letter and a colon, or a forward or backward slash), it is relative to the ColdFusion temporary directory, which is returned by the GetTempDirectory function.

output

Required

Content of the file to be created.

addNewLine

Optional

yes

  • yes: appends newline character to text written to file.

  • no

attributes

Optional

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

If omitted, the file’s attributes are maintained.

Each value must be specified explicitly. For example, if you specify attributes="readOnly", all other attributes are overwritten.

  • readOnly

  • hidden

  • normal

charset

Optional

JVM default file character set

The character encoding in which the file contents is encoded. The following list includes commonly used values:

  • utf-8

  • iso-8859-1

  • windows-1252

  • us-ascii

  • shift_jis

  • iso-2022-jp

  • euc-jp

  • euc-kr

  • big5

  • euc-cn

  • utf-16

For more information character encodings, see www.w3.org/International/O-charset.html.

fixnewline

Optional

no

  • yes: changes embedded line-ending characters in string variables to operating-system specific line endings.

  • no: does not change embedded line-ending characters in string variables.

mode

Optional

Applies only to UNIX and Linux. Permissions. Octal values of UNIX chmod command. Assigned to owner, group, and other, respectively; for example:

  • 644: assigns read/write permission to owner; read permission to group and other.

  • 777: assigns read/write/execute permission to all.

Example

This example creates a file with information a user entered in an HTML insert form:

<cffile action = "write"  
    file = "c:\files\updates\#Form.UpdateTitle#.txt"  
    output = "Created By: #Form.FullName#  
    Date: #Form.Date#  
    #Form.Content#">

If the user submitted a form with the following:

UpdateTitle = "FieldWork" 
FullName = "World B. Frueh"  
Date = "10/30/01"  
Content = "We had a wonderful time in Cambridgeport." 

ColdFusion would create a file named FieldWork.txt in the c:\files\updates\ directory and the file would contain the following text:

Created By: World B. Frueh 
Date: 10/30/01  
    We had a wonderful time in Cambridgeport.

This example shows the use of the mode attribute for UNIX. It creates the file /tmp/foo with permissions rw-r--r-- (owner = read/write, group = read, other = read):

<cffile action = "write" 
    file = "/tmp/foo"  
    mode = 644> 

This example appends to the file and sets permissions to read/write (rw) for all:

<cffile action = "append" 
    destination = "/home/tomj/testing.txt"  
    mode = 666  
    output = "Is this a test?">

This example uploads a file and gives it the permissions owner/group/other = read/write/execute):

cffile action = "upload" 
    fileField = "fieldname"  
    destination = "/tmp/program.exe"  
    mode = 777>

This example uses the fixnewline attribute to changes embedded line-ending characters in xmlString, which is derived from xmlData, to operating-system specific line endings.

<cfxml variable="xmlData"> 
    <docroot> 
        <payload type="string">This is some plain text</payload> 
    </docroot> 
</cfxml> 
<cfset xmlString = toString(xmlData)> 
 
<cfset key = createUUID()> 
<cfset encString=encrypt(xmlString, key)> 
<cffile action="write" addnewline="yes" 
    file="C:\ColdFusion9\wwwroot\test\store.dat"  
    output="#encString#" fixnewline="yes"> 
<cffile action="read" file="C:\ColdFusion9\wwwroot\test\store.dat" 
    variable="retrievedString"> 
<cfset decString=decrypt(retrievedString, key)> 
<cfdump var="#decString#"> 
<cfset newXML = xmlParse(decString)> 
<cfdump var="#newXML#">

ColdFusion supports using cffile to write an image, for example:

<!--- Create a new cfimage. ---> 
<cfset myImage=ImageNew("",200,200)> 
<!--- Draw a square on the image. ---> 
<cfset ImageDrawRect(myImage,10,10,100,100)> 
<!--- Use cffile to write the cfimage to a JPG. ---> 
<cffile action="write" output="#myImage#" file="c:\cfpix\square.jpg">