"File Upload Utility with ColdFusion,"Vol. 1, Issue 1, p. 40

Download files associated with this article.

Listing 1.<form name="Uploader" action="UploadFile.cfm"
    method="POST" enctype="multipart/form-data">
  <input name="ClientName" type="text">
  <input name="ClientPhone" type="text">
  <input name="FileContents" type="file">
  <input name="NameConflict" type="radio"
         value="Overwrite" checked>
  <input name="NameConflict" type="radio"
         value="MakeUnique">
  <input type="submit" value="Upload Now">
</form>

Listing 2.
<cfif #UploadSuccess# AND #FileWasRenamed#>
  <cfset NewFileName = #File.ClientFile#>
  <cfset ClientFileFull = #File.ServerDirectory# & "\" & #File.ClientFile#>
  <cfset ServerFileFull = #File.ServerDirectory# & "\" & #File.ServerFile#>
    <!--- add random extension to existing file --->
  <cffile action="rename"
          source="#ClientFileFull#"
          destination="#ClientFileFull#.#RandRange(100, 999)#"
  >
    <!--- rename new file to old name --->
  <cffile action="rename"
          source="#ServerFileFull#"
          destination="#ClientFileFull#"
  >
</cfif>

Listing 3.
  <!--- RESPOND on Success --->
<cfif #UploadSuccess#>
    <!------- HTML response ------->
  <font color="#FFFF00">
    <br><h4>Thank you!
    <br>Your file has been uploaded</h4>
  </font>
  <form>
    <input type="Button" value="    OK    "
           onClick="self.close()">
  </form>
    <!----------- EMAIL --------------->
  <cfmail to="#jobs_email#"
          from="#Form.ClientName#"
          subject="File Upload: #NewFileName#"
          server="#mailserver#"
  >
  <cfif #FileWasOverwritten#>
   FILENAME: #NewFileName# (previous overwritten)
  <cfelseif #FileWasRenamed#>
   FILENAME: #NewFileName# (previous was renamed)
  <cfelse>
   FILENAME: #NewFileName#
  </cfif>
   Filesize: #FileSize#
Received On: #DateFormat(Now(), "ddd, mmmm dd")#
         At: #TimeFormat(Now(), "hh:mm:sstt")#
    Sent By: #Form.ClientName#
      Phone: #Form.ClientPhone#
 IP Address: #CGI.Remote_Addr#
  </cfmail>
<cfelse>
  <!-- handle upload failure here --->
</cfif>