国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > web前端 > jscript > JS 获取上传文件大小

JS 获取上传文件大小

来源:程序员人生   发布时间:2014-06-16 16:24:23 阅读次数:2470次
我们有时候在上传文件前要判断文件的大小,通常有以下两种方式: 
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this)">
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this.value)">
</body>
<script type="text/javascript">

function getFileSize(filePath)
{
var image=new Image();
image.dynsrc=filePath; title="提示:点击查看"
alert(image.fileSize);
}

function getFileSize(fileObj)
{
var image=new Image();
image.dynsrc=fileObj.value;
var size = image.fileSize || fileObj.files[0].fileSize;
if(size > 100000){
alert(size);
}

}
</script>
</html>

但是以上代码有一个问题,就是在给image.dynsrc赋值的时候,要有文件的操作权限,换句话说,IE7之后的版本为了提高安全性不允许浏览器对文件进行操作,故以上代码不实用。

以下代码通过调用ActiveX来进行文件的读取,需要启用ActiveX的部分功能。
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<script type="text/javascript">

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;
}
}

</script>
<body>
<INPUT TYPE="file" NAME="file" SIZE="30" onchange="getFileSize(this)">
</body>
</html>
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------

上一篇 站长运营网站的服务方向:需要面向网友

下一篇 让Windows FTP服务器更安全

分享到:
------分隔线----------------------------
为码而活
积分:4237
15粉丝
7关注
栏目热点
关闭
程序员人生