«

»

Dec 19

Print this Post

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

Permanent link to this article: http://ensina.me/coldfusion/bytes-para-bytes-formatados-kbmbgb/

Leave a Reply