Может ли кто-нибудь помочь мне, предложив функцию для извлечения файла .7z
в ColdFusion? Я использую ColdFusion 10 и код на основе cfscript. Действительно, у нас есть тег cfzip
, но он извлекает только файлы .zip
и .jar
.
Извлечь файл 7z в coldfusion
Ответы (2)
Вы можете использовать cfexecute
, который, к сожалению, недоступен в cfscript
, для запуска экстрактора 7z на вашем сервере и выполнения различных команд для извлечения файла в выбранное вами место.
К счастью для вас, кажется, Рэймонд Камден подробно остановился на этом:
http://www.raymondcamden.com/index.cfm/2011/2/21/Working-with-RARs-in-ColdFusion
person
Jarede
schedule
31.05.2013
Функция для распаковки файла .rar в указанном месте назначения. Используйте тег cfexecute для запуска rar exe в командной строке
<cffunction name="Unrar" access="public" returnType="boolean" output="false">
<cfargument name="archivefile" type="string" required="true">
<cfargument name="destination" type="string" required="true">
<cfset var exeName = "">
<cfset var result = "">
<cfset var errorresult = "">
<cfif not fileExists(arguments.archivefile)>
<cfthrow message="Unable to work with #arguments.arvhiefile#, it does not exist.">
</cfif>
<cfif findnocase(".rar",arguments.archivefile)>
<cfset var exeName = expandpath("WinRAR\rar.exe")>
<cfset var args = []>
<cfif directoryExists(#arguments.destination#)>
<cfset args[1] = "x +o">
<cfelse>
<cfset directoryCreate(#arguments.destination#)>
<cfset args[1] = "x">
</cfif>
<cfset args[2] = arguments.archivefile>
<cfset args[3] = "#arguments.destination#">
</cfif>
<cfexecute name="#exeName#" arguments="#args#" variable="result" errorvariable="errorresult" timeout="99" />
<cfif findNoCase("OK All OK", result)>
<cfreturn true>
<cfelse>
<cfreturn false>
</cfif>
</cffunction>
person
coldfusiondevshop
schedule
31.05.2013