如何通过js取上传文件大小

      今天碰到个取上传文件大小的问题,主要是针对IE浏览器的。ie的情况分两种ie8以上版本和ie8及以下版本,在做文件上传取出对象时,IE8以上版本有一个files数组属性,可以通过取第一个数组的size拿出文件的大小(以b为单位,至于属性,有兴趣的可以按f12打断点查看一下)。而版本低的则需要取的上传文件的物理路径,根据物理路径取出文件的大小。

以下是范例:

        ie8以下页面范例:

<html>
<head>
<title>测试页面</title>
<script>
function getsize(){
	var fileId = "uploadtest";
	var dom = document.getElementById(fileId);
	dom .select();
         var realpath = document.selection.createRange().text;
         var fso = new ActiveXObject("Scripting.FileSystemObject");
         alert(fso.GetFile(realpath).size);
	}

</script>
</head>
<body>
	<input type=  'file' name = 'upload' id = 'uploadtest' οnchange="getsize();"/>
</body>
</html>

        ie8以上页面范例:

<html>
<head>
<title>测试页面</title>
<script>
function getsize(){
	var fileId = "uploadtest";
	var dom = document.getElementById(fileId);
	alert(dom.files[0].size);
	}

</script>
</head>
<body>
	<input type=  'file' name = 'upload' id = 'uploadtest' οnchange="getsize();"/>
</body>
</html>


因为低版本中没有files数组,所以取值比较麻烦,但是xp系统最高到ie8,没办法,麻烦也得用,


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值