我在提交表单后上传了文件,我需要删除文件上传完成后的旧文件。一切正常,表单提交,文件上传。但一般来说 Coldfusion 似乎无法识别旧文件。使用fileExist()
命令或实际<cffile action="delete">
命令。同时,当我输出我用于两者的变量fileExist()
和删除之前,我点击这些行,我导航到我的 ftp 中的确切路径,文件实际上在那里,在表单提交之前和之后。上传的文件不应覆盖以前的照片,因为它们的名称完全不同并且makeunique
正在使用中。如果有任何帮助,我将不胜感激。
这是我提交表单后的代码片段(我现在只是想让 image1 工作,但其他 3 个图像显示相同的行为。
此行执行<cfoutput>#variables.erase1#</cfoutput><br />
但hello2
不执行:
<cfquery name="getPreviousImage" datasource="#Application.datasourceName#">
SELECT
image1, image2, image3, image4
FROM
testaCustomers
WHERE
RecordID = <cfqueryparam value="#form.ID#" cfsqltype="CF_SQL_INTEGER" maxlength="50">
</cfquery>
<cfset variables.oldImage1 = getPreviousImage.image1>
<cfset variables.oldImage2 = getPreviousImage.image2>
<cfset variables.oldImage3 = getPreviousImage.image3>
<cfset variables.oldImage4 = getPreviousImage.image4>
<cfset variables.image1 = getPreviousImage.image1>
<cfset variables.image2 = getPreviousImage.image2>
<cfset variables.image3 = getPreviousImage.image3>
<cfset variables.image4 = getPreviousImage.image4>
<cfif #form.image1# NEQ "">
<cffile action="upload" destination="#Application.filePath#Pics/" filefield="image1" nameconflict="makeunique" result="upload1">
<cfif isDefined ("upload1.serverFile")>
<cfset variables.image1 = #upload1.serverFile#>
</cfif>
<cfset variables.erase1 = Application.filePath & "Pics/" & variables.oldImage1>
<cfoutput>#variables.erase1#</cfoutput><br />
<cfif fileExists(variables.erase1)>
hello2
<cffile action="delete" file="#variables.erase1#">
</cfif>
</cfif>