The definitive source of the best
JavaScript libraries, frameworks, and plugins.

  • ×


    JavaScript library to generate a human readable String describing the file size
    Filed under 

    • 🔾42%Overall
    • 1,012
    • 15.7 days
    • 🕩79
    • 👥6


    build status downloads CDNJS version

    filesize.js provides a simple way to get a human readable file size string from a number (float or integer) or string.

    Optional settings

    filesize() accepts an optional descriptor Object as a second argument, so you can customize the output.


    (number) Number base, default is 2


    (boolean) Enables bit sizes, default is false


    (number) Specifies the symbol via exponent, e.g. 2 is MB for base 2, default is -1


    (boolean) Enables full form of unit of measure, default is false


    (array) Array of full form overrides, default is []

    locale (overrides 'separator')

    (string || boolean) BCP 47 language tag to specify a locale, or true to use default locale, default is ""

    localeOptions (overrides 'separator', requires string for 'locale' option)

    (object) Dictionary of options defined by ECMA-402 (Number.prototype.toLocaleString). Requires locale option to be explicitly passed as a string, otherwise is ignored.


    (string) Output of function (array, exponent, object, or string), default is string


    (boolean) Decimal place end padding, default is false


    (number) Decimal place, default is 2


    (string) Decimal separator character, default is .


    (string) Character between the result and symbol, default is " "


    (string) Standard unit of measure, can be iec or jedec, default is jedec; can be overruled by base


    (object) Dictionary of SI/JEDEC/IEC symbols to replace for localization, defaults to english if no match is found


    (boolean) Enables unix style human readable output, e.g ls -lh, default is false


    (string) Rounding method, can be round, floor, or ceil, default is round


    filesize(500);                        // "500 B"
    filesize(500, {bits: true});          // "4 Kb"
    filesize(265318, {base: 10});         // "265.32 kB"
    filesize(265318);                     // "259.1 KB"
    filesize(265318, {round: 0});         // "259 KB"
    filesize(265318, {output: "array"});  // [259.1, "KB"]
    filesize(265318, {output: "object"}); // {value: 259.1, symbol: "KB", exponent: 1, unit: "KB"}
    filesize(1, {symbols: {B: "Б"}});     // "1 Б"
    filesize(1024);                       // "1 KB"
    filesize(1024, {exponent: 0});        // "1024 B"
    filesize(1024, {output: "exponent"}); // 1
    filesize(265318, {standard: "iec"});  // "259.1 KiB"
    filesize(265318, {standard: "iec", fullform: true}); // "259.1 kibibytes"
    filesize(12, {fullform: true, fullforms: ["байтов"]});  // "12 байтов"
    filesize(265318, {separator: ","});   // "259,1 KB"
    filesize(265318, {locale: "de"});   // "259,1 KB"

    Partial Application

    filesize.partial() takes the second parameter of filesize() and returns a new function with the configuration applied upon execution. This can be used to reduce Object creation if you call filesize() without caching the descriptor in lexical scope.

    const size = filesize.partial({standard: "iec"});
    size(265318); // "259.1 KiB"

    How can I load filesize.js?

    filesize.js supports AMD loaders (require.js, curl.js, etc.), node.js & npm (npm install filesize), or using a script tag.

    An ES6 version is bundled with an npm install, but requires you load it with the full path, e.g. require(path.join(__dirname, 'node_modules', 'filesize', 'lib', 'filesize.es6.js')).


    Copyright (c) 2021 Jason Mulligan Licensed under the BSD-3 license.

    Show All