日期:2014-05-16  浏览次数:20326 次

javascript 在IE下判断文件的大小

<script language="javascript">

function ShowSize(files)?
{?
? var fso,f;?
? fso=new ActiveXObject("Scripting.FileSystemObject");?
? f=fso.GetFile(files);
? var fileSize = f.size ;
? if((fileSize/1024) < 1024){
??? alert(fileSize/1024+"K");
? }else if( ((fileSize/1024) > 1024) && ((fileSize/(1024*1024)) < 1024)){
??? alert(fileSize/(1024*1024)+"M");
? }else{
??? alert(fileSize/(1024*1024*1024)+"G")
? }
}?


</script>
<body onload="ShowSize('D:\开通vip权限客户.xls')">

?

?

这种方法可以实现,也容易被开发人员想到,但是唯一不足之处是有安全提示,当然把文件名改为.hta则会屏蔽掉安全提示,但很难被需求所取。不推荐,也不多说

下面主要谈谈另一种方式,在html标签中有一个不为一般开发人员“深”知的img标签,先来说下他有的属性:src,dynsrc,start,alt,controls,loop,loopdelay,hspace,vspace....还有一些常用的属性就不列出来了,在这里我们说一下"dynsrc"这个属性:dynsrc可以用来插入各种多媒体,格式可以是Wav、Avi、AIFF、AU、MP3、Ra、Ram等等。url为音频或视频文件及其路径,可以是相对路径或绝对路径。

示例:<img dynsrc="xxxx.mp3">

这样我们就可以根据dynsrc动态赋值任何类型文件的路径,在javascript中根据Image对象本身的fileSize属性来得到文件的大小。当然Image对象还有其他的几个属性,例如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters... , 代码如下:

Javascript代码
<script type="text/javascript">???
function getFileSize(filePath)???
{???
?? var image=new Image();???
?? image.dynsrc=filePath;???
?? alert(image.fileSize);???

//这里弹出的是字节,要转换成k或者M或者G

?

?var fileSize = image.fileSize;
??? if((fileSize/1024) < 1024){
??? alert(fileSize/1024+"K");
? }else if( ((fileSize/1024) > 1024) && ((fileSize/(1024*1024)) < 1024)){
??? alert(fileSize/(1024*1024)+"M");
? }else{
??? alert(fileSize/(1024*1024*1024)+"G")
? }

?

?
}???
</script>???
<body>???
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">???
</body>?

?

?