首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确认cffile写入成功?

如何确认cffile写入成功?
EN

Stack Overflow用户
提问于 2013-06-26 03:20:30
回答 3查看 893关注 0票数 1

我正在使用cffile创建一个新文件或更新一个现有文件,这取决于用户的请求。请求来自上一过程中的表单,因此涉及cffile的代码如下所示:

代码语言:javascript
复制
<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上尝试/捕获,但捕获只有在似乎没有出错的情况下才会运行。如果我没有得到一个错误的捕获,我可以假设一切正常吗?如果可能的话,我更喜欢直接检查。有谁有主意吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-26 03:30:39

您可以使用带有action="list"filter="your-filename"cfdirectory来获取有关上传的文件的以下信息:

如果action = "list",cfdirectory返回以下结果列,您可以在cfoutput标签中引用这些列:

  • name :目录条目名称。条目“。和"..“不是包含该项的目录。文件大小:目录项的大小。文件类型:文件;returned.
  • directory:,对于文件;

,对于modified.

  • attributes:属性,如果applicable.
  • mode:为空列,则表示该项的最后日期;保留的目的是为了与UNIX上的ColdFusion 5应用程序向后兼容。

您感兴趣的是dateLastModified列。

因此,您应该能够执行以下操作:

代码语言:javascript
复制
<cfdirectory action="list" name="dirQuery" directory="C:/var/www/reports/" filter="#thefile#.cfm">

然后,您可以转储该结果,以查看您可以获得哪些信息:

代码语言:javascript
复制
<cfdump var="#dirQuery#">

可以按如下方式访问dateLastModified列:

代码语言:javascript
复制
<cfoutput>#dirQuery.dateLastModified#</cfoutput>
票数 4
EN

Stack Overflow用户

发布于 2013-06-26 15:23:00

如果<cffile>不工作,它会抛出一个异常来告诉你。如果它没有做到这一点,你可以放心地认为它已经起作用了。不要过度设计你的应用程序。

票数 5
EN

Stack Overflow用户

发布于 2013-06-26 03:28:32

在更新文件之前使用CFDirectory获取文件的dateLastModified,然后在更新之后再次获取。如果它们不相同,则它已更新。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17305720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档