为什么浏览器检测到的上载文件大小与文件系统中的大小不同

时间:2014-03-28 12:57:44

标签: jquery browser filesystems size

我想阻止用户在<asp:FileUpload />上传大于1的文件。问题是在文件系统中检测到一个大小为993 Mo(0.993 Go)的文件(使用jQuery)...

 $(":file").change(function () {
        alert($(this)[0].files[0].size);
});

...大小为1,017 Go在Web浏览器中(chrome和IE都表示相同的值)。如果大小(浏览器1和文件系统1)不同,我怎么能准确验证表单?

3 个答案:

答案 0 :(得分:1)

您可能已经或可能不知道,有两种测量文件大小的系统:二进制和十进制。在二进制文件中,每1 MB有1024 KB,每1 GB有1024 MB等。在十进制中,每1 MB有1000 KB,每1 GB有1000 MB等。每个程序/公司的方式可能有所不同/无论采取什么措施数据。

答案 1 :(得分:0)

文件系统的大小是存储文件所需的实际大小 - 它可能与文件内容的字节长度不同,因为文件系统是群集的。
文件占用磁盘上的集群,并且浪费了不用于实际存储数据的集群区域 这会导致文件的实际大小与磁盘上的大小之间存在差异。

答案 2 :(得分:0)

添加功能你可以获得文件的大小

    add: function (e, data) {
                try {

                    var imageKbytes = parseFloat(data.files[0].size / 1024);
                    var ImageMbytes = parseFloat(imageKbytes) / 1024;
                    if (ImageMbytes > parseFloat(2.0)) {
                        $("#errormessage").text("Please upload image upto 2 MB only");
                        return;
                    }
                 }
             catch (ex) {
                OpenAlertDialog(ex.message);
                  }
    }