cffile action = "write"

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_path_name"
output = "content"
mode = "permission"
addNewLine = "yes" or "no"
attributes = "file_attributes_list"
charset = "charset_option" >

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 a 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.

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.

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: (default) do not change embedded line-ending characters in string variables.

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:\CFusionMX7\wwwroot\test\store.dat" output="#encString#" fixnewline="yes">
<cffile action="read" file="C:\CFusionMX7\wwwroot\test\store.dat" variable="retrievedString">
<cfset decString=decrypt(retrievedString, key)>
<cfdump var="#decString#">
<cfset newXML = xmlParse(decString)>
<cfdump var="#newXML#">

View comments in LiveDocs