Как переименовать файл с помощью 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 тэг вроде не работает...

Отредактировано: я фактически следовал за учебником блога Бена Наделя. http://www.bennadel.com/blog/795-learning-coldfusion-8-cfzip-part-ii-zipping-files-and-directories-with-cfzipparam.htm

2 ответа

Решение

Вы не можете переименовать файлы внутри почтового индекса, используя cfzip,
Предоставление входного пути в cfzipparam создаст только подкаталог внутри zip-файла.
В вашем случае подкаталог с именем document.doc будет создан внутри zip-файла.
Имя файла внутри почтового индекса будет таким же, как вы указали в cffile при создании файла doc.
Пожалуйста прочтите это

Поэтому вам нужно сначала переименовать файл по желанию. И тогда вы можете почтовый индекс, чтобы получить желаемые результаты.

На самом деле, entrypath Атрибут позволяет переименовать файл, который будет включен в zip.

К сожалению, в ColdFusion 11, похоже, есть ошибка # 3968971, из- за которой она перестала работать.

Другие вопросы по тегам