jQuery限制上传图片格式和大小代码实例

快乐打工仔 分类:实例代码

通常情况下网站对上传的图片格式和大小都会有所限制。

下面就分享一段能够实现此功能代码,感兴趣的朋友可以做一下参考。

代码中缺乏图片,不过不影响核心功能。

特别说明:仅仅做前端验证是不够的,通常情况下,后台也会进行同样的验证。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>犀牛前端部落</title>
<style>
.form-group {
width: 100%;
margin-bottom: 20px;
height: auto;
}
.va-top {
vertical-align: top;
display: inline-block;
}
.input-w {
width: 500px;
}
.img-left {
padding-right: 16px;
width: 65%;
border-right: 1px dashed #cccccc;
}
.img-left a, .item_img {
width: 120px;
height: 120px;
text-align: center;
display: inline-block;
margin-right: 50px;
vertical-align: top;
}
.a_first + .item_img {
margin-right: 0px;
}
.item_img img {
width: 120px;
height: 120px;
}
.img-left .a_last, .img-left .a_first {
padding-top: 85px;
background-image: url("../img/addPic.png");
background-repeat: no-repeat;
background-position: center center;
}
.img-left .a_last {
margin-right: 0;
}
.img-left .format-tip {
margin-top: 20px;
}
.img-right {
padding-left: 30px;
width: 34%;
}
.img-right span {
text-align: center;
}
input[type="file"] {
display: none;
}
</style>
</head>
<body>
<div class="form-group file_group">
<label class="va-top">照片</label>
<div class="input-w va-top">
<div class="img-left va-top">
<a class="a_first" id="firstBtn">添加正面照片</a>
<a class="a_last" id="lastBtn">添加反面照片</a>
<p class="format-tip">请上传身份证正面和反面照片,要求能看清证件号码,格式要求:支持jpg/jepg/png,大小不超过4W</p>
</div>
<div class="img-right va-top">
<p>参考示例</p>
<img src="../img/img0.jpg" alt="照片的正反两面">
</div>
</div>
<input type="file" id="firstFile">
<input type="file" id="lastFile">
<span></span>
</div>
<script src="/wp-content/uploads/front-end-tutorial/error.html"></div>';
$(bind_img);
function bind_img() {
var firstBtn = document.getElementById("firstBtn");
var lastBtn = document.getElementById("lastBtn");
var fileFirst = document.getElementById("firstFile");
var fileLast = document.getElementById("lastFile");
bind_change(firstBtn, fileFirst);
bind_change(lastBtn, fileLast);
}
//绑定图片选择的事件
function bind_change(btnObj, fileObj) {
$(btnObj).unbind("click").bind("click", function() {
fileObj.click();
});
$(fileObj).change(function() {
var that = $(this);
//判断图片的类型和大小
judgeTypeSize(btnObj, that, 160, img_upload);
});
}
function judgeTypeSize(btnObj, fileObj, maxSize, callback) {
var value = fileObj.val();
if (!value.match(/.jpg|.jpeg|png/i)) {
alert("图片格式必须是jpg或jpeg或png");
} else {
var size = fileObj[0].files[0].size; //得到图片的大小[]
var span = fileObj.parent().find("span"); //错误的提示span
console.log(size / 1024 + "kb");
var trueSize = Math.ceil(size / 1024); //把字节转换成kb
if (trueSize > maxSize) {
span.show();
span.html("照片尺寸过大,请重新选择");
} else {
span.hide();
if (callback) {
callback(btnObj, fileObj[0]);
}
}
}
}
function getImgUrl(fileObj) {
var url;
if (fileObj.files && fileObj.files[0]) { //火狐下
url = window.URL.createObjectURL(fileObj.files[0]);
} else { ////IE下
fileObj.select();
url = fileObj.selection.createRange().text;
document.selection.empty();
}
return url;
}
//得到图片的地址并进行预览
function img_upload(btnObj, fileObj) {
var url = getImgUrl(fileObj);
var $imgBox = $(imgBox);
var imgLeft = $(".img-left");
var img = $imgBox.find("img");
img.attr("src", url);
imgLeft[0].insertBefore($imgBox[0], btnObj); //js的方法
//$(btnObj).hide();
console.log("成功了");
}
})(jQuery, window);
</script>
</body>
</html>

jQuery限制上传图片格式和大小代码实例,这样的场景在实际项目中还是用的比较多的,关于jQuery限制上传图片格式和大小代码实例就介绍到这了。

jQuery限制上传图片格式和大小代码实例属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容