+
80
-

js如何获取input file上传文件夹的文件大小总和?

js如何获取input file上传文件夹的文件大小总和?

网友回复

+
0
-

通过file.size获取文件大小,然后foreach目录文件,获取总大小,具体代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>BFW NEW PAGE</title>
    <script id="bfwone" data="dep=jquery.17&err=0" type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/bfwone.js"></script>
    <script type="text/javascript">
        function getFileSize(fileByte) {
            var fileSizeByte = fileByte;
            var fileSizeMsg = "";
            if (fileSizeByte < 1048576) fileSizeMsg = (fileSizeByte / 1024).toFixed(2) + "KB";
            else if (fileSizeByte == 1048576) fileSizeMsg = "1MB";
            else if (fileSizeByte > 1048576 && fileSizeByte < 1073741824) fileSizeMsg = (fileSizeByte / (1024 * 1024)).toFixed(2) + "MB";
            else if (fileSizeByte > 1048576 && fileSizeByte == 1073741824) fileSizeMsg = "1GB";
            else if (fileSizeByte > 1073741824 && fileSizeByte < 1099511627776) fileSizeMsg = (fileSizeByte / (1024 * 1024 * 1024)).toFixed(2) + "GB";
            else fileSizeMsg = "文件超过1TB";
            return fileSizeMsg;
        }

        var files = [];
        var totalsize = 0;
        bready(function() {
            $("#uploadfolder").change(function() {
                for (var i = 0; i < this.files.length; i++) {
                    totalsize += this.files[i].size;


                }
                files = this.files;
                alert("总共上传文件夹大小"+getFileSize(totalsize));
                totalsize = 0;
            });

            $("#upload-btn").click(function() {

                var fd = new FormData();

                console.log(files);

                for (var i = 0; i < files.length; i++) {
                    totalsize += files[i].size;
                    fd.append("file", files[i]);

                }


                $.ajax({
                    type: 'POST',
                    url: "/FolderUpload",
                    data: fd,
                    cache: false,
                    processData: false,
                    contentType: false,
                    dataType: 'json',

                    success: function (ret) {},
                    complete: function(XMLHttpRequest, textStatus) {}
                });

            });
        });
    </script>
    <style>
    </style>
</head>
<body>


    <input type='file' id="uploadfolder" name="file" webkitdirectory />

    <button id="upload-btn">上传文件夹</button>


</body>
</html>

我知道答案,我要回答