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


person De De De De    schedule 02.01.2015    source источник


Ответы (2)


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

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

person Pankaj    schedule 02.01.2015
comment
Мой плюс увеличил вашу репутацию до трехзначного числа. Ты должен мне пиво. - person Dan Bracuk; 02.01.2015
comment
@DanBracuk Спасибо. :-) - person Pankaj; 02.01.2015
comment
Да, Панкадж, я иду к тебе домой за пивом. - person Tushar Bhaware; 02.01.2015

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

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

person anna.mi    schedule 18.06.2015