急。。高悬赏,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!呵呵!