下面这段代码最后的弹出总是 -1 .奇怪在如果我把这段代码随便建一个html文件,直接打开,第一次点判断大小返回是-1,然后再点击就是文件大小了。。而如果我把这个html文件放到我的项目文件夹中(服务器是tomcat6.0),然后我以http://localhost:8080/project/test.html的方式打开,不管我放进去的是什么图片,多大多小,什么文件都是返回-1.这是为什么?而如果我要加一个网络图片,例如imgage.src='http://img.baidu.com/img/logo-zhidao.gif',最终就可以返回文件实际大小。这是怎么回事啊????
求求大家救救小弟,苦恼了我两天了!!!!!!真是想哭!!!!帮忙解决了,我加分。扣谢!!!
<html>
  <head>
    <script type="text/javascript">
        var  Sys = {};
        if(navigator.userAgent.indexOf("MSIE")>0) {  
            Sys.ie=true;
        }   
        if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){   
            Sys.firefox=true;
        } 
        function checkFileChange(obj) {
            var filesize = 0;
            if(Sys.firefox){
                filesize = obj.files[0].fileSize;
            }else if(Sys.ie){
                var filePath = obj.value;
                var image=new Image();   
                image.src=filePath;   
                filesize=image.fileSize;    
            }
            alert(filesize);
        }
    </script>  </head>
  <body>    <input type="file" id="myId" name="myId">
    <input type="button" value="判断文件大小" onclick="checkFileChange(document.getElementById('myId'))">
  </body>
</html>
如果方便可以请加  QQ 22511685 请教大哥们!

解决方案 »

  1.   

    俺终于找到解决方法了,把当前页面加入可信站点就可以了,这是因为IE安全性所至!因为IE现在对JS限制太紧!可是这样的话只能让客户端也把页面都加入可信站点。不知道有没有别的方法可以实现的。我只是想控制客户上传图片的大小
      

  2.   

    如果是IE, 可以new一个Image对象, 把dynsrc设置, 然后取长度。lz应该很容易理解, 能随便取本地文件, 将导致安全性问题。这样不是就可以随便遍历硬盘文件了么?
    先设置个值, 然后看下error还是onload, 就知道文件是否存在了。浏览器怎么会允许我们做这么过分的事情呢。