如何使用cfzip重命名文件?

时间:2015-01-02 04:27:56

标签: coldfusion zip rename coldfusion-10 cfzip

我在压缩文档时难以重命名文件。在下面,我试图从文档中获取字符串,替换并保存为具有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

2 个答案:

答案 0 :(得分:7)

您无法使用cfzip重命名zip文件。
cfzipparam中提供一个入口路径只会在zip文件中创建一个子目录 在您的情况下,名为&#39; document.doc&#39;的子目录将在zip文件中创建。
在生成doc文件时,zip文件中的文件名与cffile中提供的文件名相同 Please read this

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

答案 1 :(得分:1)

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

不幸的是,ColdFusion 11中的bug #3968971似乎停止了工作。