您的位置:首页 > Web前端 > JavaScript

【转】JS解决客户端判断文件大小的例子

2012-08-13 11:27 211 查看
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<script type="text/javascript">
var agent = window.navigator.userAgent;
var isIE = /msie/i.test(agent) && !window.opera;
function fileChange(target) {
var fileSize = 0;
if (isIE && !target.files) {
//如果是ie6以下的版本,直接fileSize可以获取到大小
if (agent.indexOf("MSIE 5.0") > 0 || agent.indexOf("MSIE 6.0") > 0

) {
var img = new Image();
var filename = target.value;
img.src = filename;
fileSize = img.fileSize;
} else {
//ie7版本以上需要打开安全设置
try {
var fso, f, fname, fsize;
var flength = 1000; //设置上传的文件最大值(单位:kb),超过此值则不上传。
var filename = target.value;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filename);//文件的物理路径
fname = fso.GetFileName(filename);//文件名(包括扩展名)
fileSize = f.Size; //文件大小(bit)

} catch (e) {
alert(e + "\n 跳出此消息框,是由于你的activex控件没有设置好,\n"
+ "你可以在浏览器菜单栏上依次选择\n"
+ "工具->internet选项->\"安全\"选项卡->自定义级别,\n"
+ "打开\"安全设置\"对话框,把\"对没有标记为安全的\n"
+ "ActiveX控件进行初始化和脚本运行\",改为\"启动\"即可");
return false;
}
}
} else {
//火狐版本下的文件大小获取
fileSize = target.files[0].size;
}
var size = fileSize / 1024;
if (size > 1000) {
alert("附件不能大于1M");
}
document.getElementById("txtfilename").value = fileSize;
}
</script>
</head>
<body>
<input type="file" name="contractFileName" style="width: 500px;"
onchange="fileChange(this);" />
<input type="text" id="txtfilename" />
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: