首页 > 解决方案 > cffile 正在覆盖现有文件

问题描述

nameconflict 属性似乎没有很好的记录,所以也许我用错了。但是,如果我使用以下代码编写文件(二进制数据),它会覆盖现有的同名文件。

<cffile action="write" file="/path/#data.name#" output="#d#" nameconflict="MakeUnique" mode="775">

标签: coldfusioncffile

解决方案


nameconflict="MakeUnique" 仅适用于<cffile action="upload".

覆盖文件是默认行为<cffile action="write"

除非出于显示目的不需要确切的文件名,否则最好使用唯一 ID 作为文件名,以确保我们不会覆盖文件。

<cfset newFile = '/path/' & CreateUUID() & '.' & ListLast(data.name, '.')>
<cffile action="write" file="#newFile#" output="#d#" mode="775">

注意:对于我们需要自定义文件名以供查看的用例,最好将原始文件名保存在数据库中,并将文件系统中的文件名保存在单独的列中。


推荐阅读