使用input tpe='file'便签上传图片,js设置显示预览图片

使用input tpe='file'便签上传图片,js设置显示预览图片


简单说明

之前写图片上传的预览功能,都是上传时通过ajax请求把图片传给后台,然后后台返回服务器图片路径,然后再显示预览提,现在可以直接通过js就可以预览上传的图片,真的很方便,这个功能是做项目的时候同事写的,我搬过来用,发现很不错,值得分享呢,如果有什么不足可以指出来哦。

js代码

<script>
   window.URL = window.URL || window.webkitURL;
   function changeFile(obj) {
       var files = obj.files;
       img = new Image();
       if (window.URL) {
           img.src = window.URL.createObjectURL(files[0]); //创建一个object URL,并不是你的本地路径
           //设置预览图片宽高,
           // img.width = 60;
           // img.height = 60;
           img.onload = function(e) {
               window.URL.revokeObjectURL(this.src); //图片加载后,释放object URL
           }

       } else if (window.FileReader) {
           //opera不支持createObjectURL/revokeObjectURL方法。我们用FileReader对象来处理
           var reader = new FileReader();
           reader.readAsDataURL(files[0]);
           reader.onload = function(e) {
               img.src = this.result;
               // img.width = 60;
               // img.height = 60;
           }
       } else {
           //ie
           obj.select();
           obj.blur();
           var nfile = document.selection.createRange().text;
           document.selection.empty();
           img.src = nfile;
           // img.width = 60;
           // img.height = 60;
           img.onload = function() {}
       }
       let uploadImgBox =document.getElementById('uploadImgBox');
       uploadImgBox.innerHTML = '';
       uploadImgBox.appendChild(img)
   }
</script>

html代码

	<label for="mypic">选择上传的图片文件</label></br>
    <input type="file" name='mypic' accept="image/*" onchange="changeFile(this)">
    <div id="uploadImgBox">预览图片区</div>

上传图片前效果图
使用input tpe='file'便签上传图片,js设置显示预览图片
上传图片后效果图
使用input tpe='file'便签上传图片,js设置显示预览图片