如何在IE 7/8中使用javascript从客户端验证文件大小?

时间:2013-06-29 04:56:13

标签: javascript internet-explorer file-upload

目前我正在使用

if(navigator.appName=='Microsoft Internet Explorer'){
        if(component.value){
            var oas = new ActiveXObject("Scripting.FileSystemObject");
            var e = oas.getFile(component.value);
            var size = e.size;
        }
    }

验证文件大小。

还有其他方法来验证尺寸

Automation server can't create object error is displayed

我知道它与在设置中启用ActiveX控件有关,但这不会发生,因为一个无法控制客户端系统而IE7 / 8甚至不支持文件Api

3 个答案:

答案 0 :(得分:1)

IE不支持此功能

我找到了一个很棒的文件上传插件jQuery-File-Upload

答案 1 :(得分:0)

只有IE 9不支持此功能。

所有其他IE版本> 9没有问题。

您可以解决您的问题通过应用IE 9的过滤器并获取文件大小。 如下所示,在其他浏览器的else条件下使用以下代码。

if (browserInfo.indexOf("msie") > -1) 
    {
        /* IE */
        var filepath = document.getElementById('idControl').value;
        if(browserInfo.indexOf("msie 9") == -1)
        {
            var myFSO = new ActiveXObject("Scripting.FileSystemObject");
            if (filepath == "") {
                alert("Please Select File");
                $("#selectorID").attr("src", $("#Contenturlprifix").val() + "/content/img/NoPhoto.png");
                return false;
            }
            file = myFSO.getFile(filepath);
            filetype = document.getElementById('idControl').accept
        }

    } else {
        /* Other */
        file = document.getElementById('idControl').files[0];
        if (file == undefined) {
            alert("Please Select File");
            return false;
        }
        else {
            filetype = file.type;
        }
    }
    if (file != undefined) {
        //10mb size 
        if (file.size / 1024 > 10240) {
            alert("size Exists");
            return false;
        }
        else if (filetype.indexOf('image/') == -1) {
            alert("Select only images");
            return false;
        }
    }

答案 2 :(得分:-1)

尝试这个............

  • 转到互联网选项。
  • 选择安全标签。
  • 在自定义级别下。
  • 确保“初始化和脚本活动x控件未标记为可安全编写脚本”选择启用单选按钮并尝试立即运行代码,我相信您的问题将得到解决。