我正在使用cffile创建一个新文件或更新一个现有文件,这取决于用户的请求。请求来自上一过程中的表单,因此涉及cffile的代码如下所示:
<cfset thefile = "#form.dyn#">
<cfoutput>
<cfsavecontent variable = "testvar">
#form.editor1#
</cfsavecontent>
<cffile action = "write"
file = "/var/www/reports/#thefile#.cfm"
output = "#testvar#">
</cfoutput>当我完成对文件的写入后,我希望向用户确认发生了这种情况。对于一个新文件,我可以使用IsDefined来检查它是否在那里。但我想不出一种方法来检查已更新的现有文件。我考虑在cffile上尝试/捕获,但捕获只有在似乎没有出错的情况下才会运行。如果我没有得到一个错误的捕获,我可以假设一切正常吗?如果可能的话,我更喜欢直接检查。有谁有主意吗?
发布于 2013-06-26 03:30:39
您可以使用带有action="list"和filter="your-filename"的cfdirectory来获取有关上传的文件的以下信息:
如果action = "list",cfdirectory返回以下结果列,您可以在cfoutput标签中引用这些列:
,对于modified.
您感兴趣的是dateLastModified列。
因此,您应该能够执行以下操作:
<cfdirectory action="list" name="dirQuery" directory="C:/var/www/reports/" filter="#thefile#.cfm">然后,您可以转储该结果,以查看您可以获得哪些信息:
<cfdump var="#dirQuery#">可以按如下方式访问dateLastModified列:
<cfoutput>#dirQuery.dateLastModified#</cfoutput>发布于 2013-06-26 15:23:00
如果<cffile>不工作,它会抛出一个异常来告诉你。如果它没有做到这一点,你可以放心地认为它已经起作用了。不要过度设计你的应用程序。
发布于 2013-06-26 03:28:32
在更新文件之前使用CFDirectory获取文件的dateLastModified,然后在更新之后再次获取。如果它们不相同,则它已更新。
https://stackoverflow.com/questions/17305720
复制相似问题