实现的功能:
1.限制上传的文件只能为图片
2.限制上传图片的大小
3.允许连续上传同一图片
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传图片</title>
<style type="text/css">
img{
height: 150px;
max-width: 300px
}
</style>
</head>
<body>
<!-- multiple属性:允许一次上传多个文件 -->
<input id="upload" type="file" name="" multiple="">
<div id="img-div"></div>
<script type="text/javascript">
var dom = document.getElementById('upload')
dom.onchange = function(event){
//获取元素节点
var target = event.target || event.srcElement;
console.log(target.files)
for( var i = 0; i < target.files.length; i ++ ){
var file = target.files[i];
if( !/image\/\w+/.test(file.type) ){
alert('文件必须为图片!')
return
}else if( file.size > 2097152 ){
alert('上传图片请小于2M')
return
}
var reader = new FileReader();
reader.onload = function() {
//获取元素节点
var imgDom = document.getElementById('img-div');
imgDom.innerHTML += '<img class="showPic" src=' + this.result + '>'
//防止两次上传同一文件无法触发onchange事件
//假设第一次上传的文件是1.png,第二次又想上传这张图片,如果缺少这句代码,则第二次无法触发onchange事件
event.target.value=''
}
reader.readAsDataURL(file)
}
}
</script>
</body>
</html>