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