dropzone.js 更改显示单位

dropzone.js Change display units

有谁知道是否可以更改上传文件的单位显示?我上传了一个 600 MB 的文件,显示的是 0.6 Gib...这对用户来说并不友好。我已经查看了网站上的说明,除了如何将 filesizeBase 从 1000 更改为 1024 之外找不到任何内容。

我有类似的需求,因为我必须始终在 KB 上显示单位。我在 dropzone.js 中找到了一个名为 filesize 的函数,我只是用自己的代码用下一个函数覆盖了它:

Dropzone.prototype.filesize = function(size) {
  var selectedSize = Math.round(size / 1024);
  return "<strong>" + selectedSize + "</strong> KB";
};

我认为您必须覆盖相同的功能,但根据您的需要对其进行调整。

希望对你有用。

这与 Dropzone 中包含的现有文件大小功能更相似(除了更冗长)。

Dropzone.prototype.filesize = function (bytes) {
    let selectedSize = 0;
    let selectedUnit = 'b';
    let units = ['kb', 'mb', 'gb', 'tb'];
    
    if (Math.abs(bytes) < this.options.filesizeBase) {
        selectedSize = bytes;
    } else {
        var u = -1;
        do {
            bytes /= this.options.filesizeBase;
            ++u;
        } while (Math.abs(bytes) >= this.options.filesizeBase && u < units.length - 1);

        selectedSize = bytes.toFixed(1);
        selectedUnit = units[u];
    }

    return `<strong>${selectedSize}</strong> ${this.options.dictFileSizeUnits[selectedUnit]}`;
}

示例:

339700 字节 -> 339.7 KB(而不是 0.3 MB,默认情况下 Dropzone returns)

来源:

这段代码对我有用:

Dropzone.prototype.filesize = function (bytes) {
    let selectedSize = 0;
    let units = ['B', 'KB', 'MB', 'GB', 'TB'];

    var size = bytes;
    while (size > 1000) {
        selectedSize = selectedSize + 1;
        size = size/1000;
    }

    return "<strong>" + Math.trunc(size * 100)/100 + "</strong> " + units[selectedSize];
}

我除以 1000,否则我得到 1010 KB,而不是 1.01 MB。