读书人

求一段获取上传文件大小的js代码解决思

发布时间: 2012-03-28 15:40:03 作者: rapoo

求一段获取上传文件大小的js代码
如题,我想<input type="file" id="file" oncchange="check()">要一个check()函数的代码,能获取上传文件的大小,这样我就能在客户端判断上传文件是否超过最大值。要IE8能用的。我在google上找到一段代码,但在IE8上是不可用的,我设置过“对为标记为安全的ActiveX空间的初始化并可执行”为启动,在IE6上可用。以下是我找的代码:

JScript code
function getFileSize(fileObj) { if (document.all) { window.oldOnError = window.onerror; window.onerror = function(err) { if (err.indexOf('utomation') != -1) { alert('No access to the file permissions.'); return true; } else return false; }; var fso = new ActiveXObject('Scripting.FileSystemObject'); var file = fso.GetFile(fileName); window.onerror = window.oldOnError; return file.Size; } } 



我发现126邮箱里添加附件,就可以获取文件大小,但是找不到那段js代码。请大侠们帮帮忙吧!
当然,有自己的解决办法也可以。

附:本来我可以将IE8换成IE6,但是后来一想,难道别个为了用我的程序还得装个IE6,那不是太搞笑了,而且google了那么多页,都是千篇一律,希望能在这里找到一个不错的解决方法


[解决办法]
越高版本的浏览器的安全越高,ActiveX基本都不是默认支持的对象了
[解决办法]
我原来做上传文件的时候也没在前台实现获取js大小;
建议楼主从后台获取文件大小后,再返回给前台,前台取值就行了!
[解决办法]

JS判断上传文件大小
HTML code
<input type="file" id="fileText">    <input type="button" value="检查文件大小" onclick="checkFileChange(document.getElementById('fileText'));">       <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 fileobject = new ActiveXObject ("Scripting.FileSystemObject");//获取上传文件的对象           var file = fileobject.GetFile (document.getElementById("fileText").value);//获取上传的文件           var filesize = file.Size;//文件大小       }       alert(filesize);   }   </script>
[解决办法]
使用ajax通信,放到后台去做试试
[解决办法]
IE8现在有问题,很多在IE6、IE7上可以正常使用的JS,在IE8上都不行的。

[解决办法]
同意12楼意见.

读书人网 >J2EE开发

热点推荐