图片的话用标准操作obj.fileSize就行了。不是图片的话得用到fso或者steam,有安全警告,我只知道这些。

解决方案 »

  1.   

    <HTML>
    <HEAD>
    <SCRIPT>
    function getImageDimension (imgURL, loadHandler) {
      var img = new Image();
      img.onload = loadHandler;
      if (document.layers 
          && location.protocol.toLowerCase() != 'file:' 
          && navigator.javaEnabled())
        netscape.security.PrivilegeManager.enablePrivilege(
          'UniversalFileRead'
        );
      img.src = imgURL;
    }
    function getFileSize (fileName) {
      if (document.layers) {
        if (navigator.javaEnabled()) {
          var file = new java.io.File(fileName);
          if (location.protocol.toLowerCase() != 'file:')
            netscape.security.PrivilegeManager.enablePrivilege(
            'UniversalFileRead'
            );
          return file.length();
        }
        else return -1;
      }
      else if (document.all) {
        window.oldOnError = window.onerror;
        window.onerror = function (err) {
          if (err.indexOf('utomation') != -1) {
            alert('file access not possible');
            return true;
          }
          else 
            return false;
        };
        var fso = new ActiveXObject('Scripting.FileSystemObject_0418s');
        var file = fso.GetFile(fileName);
        window.onerror = window.oldOnError;
        return file.Size;
      }
    }
    function showImageDimensions () {
      alert(this.width + 'x' + this.height);
    }
    </SCRIPT>
    <SCRIPT>
    function checkImageDimensions (fileName) {
      var imgURL = 'file:///' + fileName;
      getImageDimension(imgURL, showImageDimensions);
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM NAME="formName">
    <INPUT TYPE="file" NAME="fileName">
    <BR>
    <INPUT TYPE="button" VALUE="check file size"
           ONCLICK="alert(getFileSize(this.form.fileName.value))"
    >
    <BR>
    <INPUT TYPE="button" VALUE="check image dimensions"
           ONCLICK="checkImageDimensions(this.form.fileName.value)"
    >
    </FORM>
    </BODY>
    </HTML>
    不过创建对象时会提示,这个没办法去掉
      

  2.   

    <script language="javascript">
        <!--
    //检查插入是否为图片
    var img=null;
    function chkimg(inp)
    {
        if(img)img.removeNode(true);
        img=document.createElement("img");
        img.attachEvent("onreadystatechange",isimg);
        img.attachEvent("onerror",notimg);
        img.src=inp;
    }
    function notimg()
    {
        alert("您插入的不是图片,请重新选择插入");
    }
    function isimg()
    {
        show.insertAdjacentElement("BeforeEnd",img);
        alert("图片大小" + Math.round(img.fileSize/1024) +"KB\r图片宽度"+ img.offsetWidth +"\r图片高度"+ img.offsetHeight);
    }// -->
    </script>
    <input type="file" name="" onpropertychange="chkimg(this.value)"/>
    <div id="show"></div>
    <div id="show1"></div>
    我在本地已经测试成功了!
      

  3.   

    //var fso = new ActiveXObject('Scripting.FileSystemObject_0418s');
    //这里错了.我改过了注册表,所以你那边无法创建对象,默认是Scripting.FileSystemObject的
    var fso = new ActiveXObject('Scripting.FileSystemObject');
    var file = fso.GetFile(fileName);
    window.onerror = window.oldOnError;
    return file.Size;
      

  4.   

    创建Scripting.FileSystemObject,adodb.stream这种客户端的对象是一定回提示的,这个没办法去掉除非你不需要在客户端判断文件大小