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

上传图片时,使用JS获得图片文件大小(旧浏览器)

2017-05-05 00:00 609 查看
这个方法用于获得图片文件的大小:

在FF,Chrome,IE6,IE7,IE8可用,不支持IE9+。(如果是IE9就需要flash插件了)

var getSize = function(oFile, callback) {
if (oFile.files && oFile.files.item) {
var item = oFile.files.item(0);
if (item.size !== undefined) {
callback(item.size);
} else {
callback(item.fileSize);
}
} else {
var img = new Image();
img.src = oFile.value;
var fn = function() {
if (img.readyState === 'complete') {
callback(img.fileSize);
} else {
setTimeout(fn, 500);
}
}
fn();
}
}

演示例子:

<html>
<head>
<Meta http-equiv="Content-Type" Content="text/html; Charset=UTF-8">
<title>获得图片文件大小</title>
</head>
<body>
<input id="oFile" type="file" onchange="javascript:onGetFileSize();" />
<span id="oConsole"></span>
<script type="text/javascript">
var onGetFileSize = function() {
var oFile = document.getElementById('oFile');
getSize(oFile, function(fileSize) {
document.getElementById('oConsole').innerHTML = fileSize;
});
}
var getSize = function(oFile, callback) { if (oFile.files && oFile.files.item) { var item = oFile.files.item(0); if (item.size !== undefined) { callback(item.size); } else { callback(item.fileSize); } } else { var img = new Image(); img.src = oFile.value; var fn = function() { if (img.readyState === 'complete') { callback(img.fileSize); } else { setTimeout(fn, 500); } } fn(); } }
</script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JavaScript