日期:2014-05-17  浏览次数:20919 次

急。。高悬赏,JSP限制上传附件大小问题。。
环境 struts1 、IE8。
相关代码

   <td>
       <input type="file" id="myFile" name="myFile" width="100%"  value=""/>
   </td>

JS代码

    var filePath = document.getElementById('myFile').value
    var fso,f,fsize;
    var flength = 100; //设置上传的文件最大值(单位:kb),超过此值则不上传。 
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f = fso.GetFile(filePath);//文件的物理路径
    fsize = f.Size/1024; //文件大小(kb)
    alert(fsize)

在IE 8 下 JS 这样获取文件大小是可以获取到的,也做了限制。
但测试的时候发现个问题。就是当我访问地址是:http://localhost/Communication/ 正常获取大小。
当访问地址改成:http://172.16.80.123/Communication/获取文件大小时就会报JS错误: Automation 服务器不能创建对象。
172.16.80.123 IP 是我自己电脑的IP。localhost 和 172.16.80.123 有什么区别导致它会报错。我不知道什么原因。。。。
换了个JS方法:

    var filePath = document.getElementById('myFile').value
    var ImgObj=new Image();
    ImgObj.src = filePath;
    ImgObj.fileSize;

这样 在IE6 下是能正常获取的,测试过。
但在IE8 下获取就是0或者-1,加ImgObj.dynsrc=filePath; 就会报 dynsrc 没有该属性或方法。
请高手指教。。。我想在JS中限制文件大小。。不要在后台判断。。。

------解决方案--------------------
这个以前好像做过,ie8 image没有src属性,好像是用div做的
------解决方案--------------------
具体代码忘了,你百度ie8图片预览 应该就这方面的代码
------解决方案--------------------
你可以把div换了啊!还有你应该找IE6和IE8多兼容的JS的,你用JQuery吧!
------解决方案--------------------
写错啦!是Image!呵呵!