2

压缩文档时,我很难重命名文件。就在下面,我正在尝试从文档中获取字符串,替换并保存为具有 UUID 文件名的文档。我希望将文件的名称更改为压缩文件时可读的名称。我该怎么做?

<cfset rtf = FileRead(filepathofdocument) />
<cfset rtf = Replace(rtf,"%newProdYN%",session.input.inputtext) />
<cfset rtf = Replace(rtf,"%ration%",session.input.inputtext2) />
<cfset cfdest = "#GetDirectoryFromPath(session.input.storage.destination)#/#CreateUUID()#.doc" />
<cffile action = "write" 
    file = "#cfdest#"
    output = "#rtf#">
<cfzip action="zip" file="#getTempDirectory()#/#CreateUUID()#.zip">
<cfzipparam source="#cfdest#" entrypath="document.doc" />
<!-- More file sources to zip... -->
</cfzip>

标签的入口路径cfzipparam似乎不起作用...

编辑:我实际上已经按照 Ben Nadel 博客的教程进行操作。http://www.bennadel.com/blog/795-learning-coldfusion-8-cfzip-part-ii-zipping-files-and-directories-with-cfzipparam.htm

4

2 回答 2

7

您不能使用 .zip 重命名 zip 中的文件cfzip
提供入口路径cfzipparam只会在 zip 文件中创建一个子目录。
在您的情况下,将在 zip 文件中创建名为“document.doc”的子目录。
zip 中的文件名称将与您在cffile生成 doc 文件时提供的名称相同。
请阅读这个

因此,您需要首先根据需要重命名文件。然后你可以压缩它以获得所需的结果。

于 2015-01-02T06:49:04.087 回答
1

实际上,该entrypath属性允许您重命名将包含在 zip 中的文件。

不幸的是,在 ColdFusion 11 中似乎存在一个错误 #3968971 ,该错误已停止工作。

于 2015-06-18T16:15:42.770 回答