Bootstrap

JavaScript---js实现从本地上传图片

实现效果如图:

完整代码:

<!DOCTYPE html>
<html>

<head>
    <title>test page</title>
</head>

<body>
    <input type="file" id="fileElem" multiple accept="image/*" onchange="handleFiles(this)" style="display:none; ">
    <div id="fileList" style="width:200px;height:200px; border:1px solid #ccc;"></div>
    <button onclick="submitImg()">上传图片</button>
</body>

<script>
    window.URL = window.URL || window.webkitURL;
    var fileElem = document.getElementById("fileElem"),
        fileList = document.getElementById("fileList");

    function handleFiles(obj) {
        var files = obj.files,
            img = new Image();
        if (window.URL) {
            //File API
            alert(files[0].name + "," + files[0].size + " bytes");
            img.src = window.URL.createObjectURL(files[0]); //创建一个object URL,并不是你的本地路径
            img.width = 200;
            img.onload = function (e) {
                window.URL.revokeObjectURL(this.src); //图片加载后,释放object URL
            }
            fileList.appendChild(img);
        } else if (window.FileReader) {
            //opera不支持createObjectURL/revokeObjectURL方法。用FileReader对象来处理
            var reader = new FileReader();
            reader.readAsDataURL(files[0]);
            reader.onload = function (e) {
                alert(files[0].name + "," + e.total + " bytes");
                img.src = this.result;
                img.width = 200;
                fileList.appendChild(img);
            }
        } else {
            //ie
            obj.select();
            obj.blur();
            var nfile = document.selection.createRange().text;
            document.selection.empty();
            img.src = nfile;
            img.width = 200;
            img.onload = function () {
                alert(nfile + "," + img.fileSize + " bytes");
            }
            fileList.appendChild(img);
        }
    }
    function submitImg() {
        fileElem.click()
    }
</script>

</html>

 

;