jQuery上传图片当地预览

jQuery上传图片本地预览
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>HTML5上传图片</title>
    <style type="text/css">
        li{list-style:none}
        li img{width:100px}
        .tips{color:red}
        #imageBox li img{
            height: 100px;
            width: 100px;
            float: left;
        }
    </style>
</head>
<body>

<input type="file" id="filesInput" multiple />

<!--上传图片-->
<p id="info"></p>



<ul id="imageBox"></ul>
<script type="text/javascript">
    //定义获取对象的方法
    function $(id) {
        return document.getElementById(id);
    }
    var filesInput = $("filesInput"),
        info = $("info"),
        imageBox = $("imageBox")


    //定义存放图片对象的数组
    var uploadImgArr = [];
    //防止图片上传完成后,再点击上传按钮的时候重复上传图片
    var isUpload = false;
    //定义获取图片信息的函数
    function getFiles(e) {
        isUpload = false;
        e = e || window.event;
        //获取file input中的图片信息列表
        var files = e.target.files
        for (var i = 0,f; f = files[i]; i++) {
//            console.log(f);
            uploadImgArr.push(f);
            var reader = new FileReader();
            //类似于原生JS实现tab一样(闭包的方法),参见http://www.css119.com/archives/1418
            reader.onload = (function(file) {
                //获取图片相关的信息
                var fileSize = (file.size / 1024).toFixed(2) + "K",
                    fileName = file.name,
                    fileType = file.type;
                //console.log(fileName)
                return function(e) {
                    //console.log(e.target)
                    //获取图片的宽高
                    var img = new Image();
                    img.addEventListener("load", imgLoaded, false);
                    img.src = e.target.result;
                    function imgLoaded() {
                        imgWidth = img.width;
                        imgHeight = img.height;
                        //图片加载完成后才能获取imgWidth和imgHeight
                        imageBox.innerHTML += "<li><img src='" + e.target.result + "' alt='" + fileName + "' title='" + fileName + "'></li>";
                    }
                }
            })(f);
            //读取文件内容
            reader.readAsDataURL(f);
        }
        //console.log(uploadImgArr);
    }
    if (window.File && window.FileList && window.FileReader && window.Blob) {
        filesInput.addEventListener("change", getFiles, false);
    } else {
        info.innerHTML = "您的浏览器不支持HTML5长传";
        info.className="tips";
    }
</script>
</body>
</html>