图片上传预览功能

最近项目中需要实现一个上传预览功能,于是写了要给小demo,由于并不复杂就直接上代码了。

实现图片预览功能的三个重点:
1.file标签有一个files的属性,docObj.files[0];(即上传的文件)
2.window.URL.createObjectURL(files[0]);

3.window.URL.revokeObjectURL(img.src);

html结构:
<input type="file" name="file" style="width: 200px; height: 20px;" οnchange="handleFiles(this)" id="upload" />
	<div id="append"></div>
	<div id="imgPreview"></div>
JS部分:
window.URL = window.URL || window.webkitURL;
    append = document.getElementById("append");
    function handleFiles(obj) {
    	console.log(obj)
        var files = obj.files,
        img = new Image();
        if(window.URL){
            //File API
            console.log(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
            }
            append.appendChild(img);
        }else if(window.FileReader){
            //opera不支持createObjectURL/revokeObjectURL方法。我们用FileReader对象来处理
            var reader = new FileReader();
            reader.readAsDataURL(files[0]);
            reader.onload = function(e){
                console.log(files[0].name + "," +e.total + " bytes");
                img.src = this.result;
                img.width = 200;
                append.appendChild(img);
            }
        }else{
            //ie
            obj.select();
            obj.blur();
            var nfile = document.selection.createRange().text;
            document.selection.empty();
            img.src = nfile;
            img.width = 200;
            img.οnlοad=function(){
                 console.log(nfile+","+img.fileSize + " bytes");
            }
            append.appendChild(img);
        }
    }
单文件上传预览只需要把appendChild改为更改img的src即可



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值