首页 > 代码库 > 兼容各浏览器的js判断上传文件大小

兼容各浏览器的js判断上传文件大小

由于项目需要,在网上找了一个JS判断上传文件大小的程序,经测试兼容IE6-9,Firefox10,Opera11.6,safari5.1,chrome17


<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>js判断上传文件的大小</title>
    <script type="text/javascript">
        var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
        var sizeLabel = ["B", "KB", "MB", "GB"];
        function fileChange(target) {
            var fileSize = 0;
            if (isIE && !target.files) {
                var filePath = target.value;
                var fileSystem = new ActiveXObject("Scripting.FileSystemObject");   
                var file = fileSystem.GetFile (filePath);
                fileSize = file.Size;
            } else {
                fileSize = target.files[0].size;
            }
            displayFileSize(fileSize);
        }
    
        function displayFileSize(size) {
            var fileSize = document.getElementById("fileSize");
            fileSize.innerHTML = calFileSize(size);
        }
        
        function calFileSize(size) {
            for (var index = 0; index < sizeLabel.length; index++) {
                if (size < 1024) {
                    return round(size, 2) + sizeLabel[index];
                }
                size = size / 1024;
            }
            return round(size, 2) + sizeLabel[index];
        }
        
        function round(number, count) {
            return Math.round(number * Math.pow(10, count)) / Math.pow(10, count);
        }
    </script>
</head>
<body>
    <div>
        <input type="file" onchange="fileChange(this);">
    </div>
    <div id="fileSize">
    </div>
</body>
</html>