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

原生js面向对象版的上传图片检测

2012-11-24 15:46 330 查看
/**
* 上传图片检测
* @param allowImgFileSize 允许的图片文件大小(kb)
* @param allowImgExt 允许的图片格式("." + ext + "|")
* @constructor
*/
function UploadImgCheck(allowImgFileSize, allowImgExt) {
//私有变量和私有函数
var imgObj = new Image(),
allImgExt = ".jpg|.jpeg|.gif|.bmp|.png|", //全部图片格式
fileObj, imgFileSize, imgWidth, imgHeight, fileExt, errMsg, fileMsg, hasCheked, isImg = false;      //图片相关属性
allowImgFileSize = allowImgFileSize || 100;
imgObj.onerror = function () {
errMsg = '\n图片加载出错!';
};
//检测图片属性
function checkImgProper(obj) {
fileObj = obj;
try {
//for FF,Chrome
imgFileSize = Math.round(fileObj.files[0].size / 1024);
} catch (ex) {
//for MSIE
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
var file = fileSystem.GetFile(fileObj.value);
imgFileSize = Math.round(file.Size / 1024);
}
if (allowImgFileSize !== "0" && imgFileSize > allowImgFileSize) {
errMsg = "图片文件大小超过限制。请上传小于" + allowImgFileSize + "KB的图片";
showcheckdMsg(errMsg);
obj.value = "";
}
}

//显示信息
function showcheckdMsg(msg) {
//TODO
alert(msg);
}

//预览图片
function preshowImg(str) {
//TODO
}

//特权方法(公有方法)
//检测图片类型
this.checkImgExt = function (obj) {
fileExt = obj.value.substring(obj.value.lastIndexOf(".") + 1);
//检测格式是否与配置的匹配
if (allImgExt.indexOf(fileExt + "|") !== -1) {
isImg = true;
imgObj.src = obj.value;
checkImgProper(obj);
} else {
errMsg = "该文件类型不允许上传。请上传 " + allowImgExt + " 类型的文件,当前文件类型为" + fileExt;
showcheckdMsg(errMsg);
obj.value = "";
}
};
//
if (typeof allowImgFileSize === "undefined") {
allowImgFileSize = fileSize;
}
if (typeof allowImgExt === "undefined") {
allowImgExt = allImgExt;
}
}
var imgcheck = new UploadImgCheck(20, ".jpg|.jpeg|.gif|.png|");
document.getElementById("picuploader").onchange = function () {
imgcheck.checkImgExt(this);
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: