Bytes para bytes formatados (KB/MB/GB)
Problema:
Voce tem um tamanho de arquivo (ex: de uma tag CFDirectory) e voce quer exibi-lo formatado no formato mais lógico.
Solução:
Simplesmente chame a função, passando apenas o tamanho em bytes. Projetado como um CFC para compartilhar com todas os seus aplicativos, pode ser facilmente reformatado para executar como uma custom tag ou inline.
Explicação detalhada:
<cfcomponent displayname="FileSizeText" hint="Returns a translated byte/KB/Mb/Gb value">
<cffunction name="getText" access="public" output="false" returntype="string">
<!---
«cfinvoke component="FileSizeText" method="getText" returnvariable="[returnvariable]">
<cfinvokeargument name="size" value="[int]">
</cfinvoke>
Returns: [returnvariable] = string
---»
<cfargument name="size" default="0" required="yes">
<cfif (NOT IsNumeric(arguments.size)) OR (arguments.size LTE 0)>
<cfset outText = "Size Unknown">
<cfelseif arguments.size LT 1024>
<cfset outText = "#arguments.size# bytes">
<cfelseif arguments.size LT 1048576>
<cfset outText = "#NumberFormat(arguments.size/1024, "_")# Kb">
<cfelseif arguments.size LT 1073741824>
<cfset outText = "#DecimalFormat(arguments.size/1048576)# Mb">
<cfelse>
<cfset outText = "#DecimalFormat(arguments.size/1073741824)# Gb">
</cfif>
<cfreturn outText>
</cffunction>
</cfcomponent>
by Paul Dynan
Versão em inglês: Adobe ColdFusion Cookbook
0 responses to “Bytes para bytes formatados (KB/MB/GB)”