日期:2014-05-16  浏览次数:20363 次

请教大牛:JS判断上传文件的大小
通过asp.net服务器控件上传文件,正式上传前通过WebService检测文件大小,返回给JS代码

问题是:sizealert无法在第一次点击上传按钮时获取正确的值,似乎ieCallBack未执行。只有第二次点击时才可以。
另,如果第一次上传的文件符合要求,上传第二个文件时,文件体积检测代码就无效了。代码如下,求教如何解决。谢谢!


var sizealert = 0;
var sizelimit;
//检测ServiceMethod返回值
function ieCallBack(response) {
            if (response == "invalid") {
                sizealert = MessageSize.Bad;
            }
            else {
                sizealert = MessageSize.Good;
            }
        }

        //Check File Size
        function checkFileSize(obj) {
            sizelimit = document.getElementById('<%=txtSizeLimit.ClientID %>');
            
            var Sys = {};
            if (navigator.userAgent.indexOf("MSIE") > 0) {
                Sys.ie = true;
            }

            if (isFirefox = navigator.userAgent.indexOf("Firefox") > 0) {
                Sys.firefox = true;
            }
            var fsize = 0;

            if (Sys.firefox) {
                fsize = obj.files[0].size;
                if (fsize > sizelimit.value) {
                    sizealert = MessageSize.Bad;
                }
                else {
                    sizealert = MessageSize.Good;
                }
            } else if (Sys.ie) {
                var filePath = obj.value;
               PageMethods.ValidateFileSize(filePath, sizelimit.value, ieCallBack);<