用file标签实现多图文件上传预览


Posted in Javascript onFebruary 14, 2017

js 代码:

<script> 
 //下面用于多图片上传预览功能
 function setImagePreviews(avalue) {
 var docObj = document.getElementById("files");
 var dd = document.getElementById("preview");
 dd.innerHTML = "";
 var fileList = docObj.files;
 for (var i = 0; i < fileList.length; i++) {
 dd.innerHTML += "<div style='float:left' > <img id='img" + i + "' /> </div>";
 var imgObjPreview = document.getElementById("img"+i);
 if (docObj.files && docObj.files[i]) {
 //火狐下,直接设img属性
 imgObjPreview.style.display = 'block';
 //控制缩略图大小
 imgObjPreview.style.width = '70px';
 imgObjPreview.style.height = '70px';
 //imgObjPreview.src = docObj.files[0].getAsDataURL();
 //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
 imgObjPreview.src = window.URL.createObjectURL(docObj.files[i]);
 }
 else {
 //IE下,使用滤镜
 docObj.select();
 var imgSrc = document.selection.createRange().text;
 alert(imgSrc)
 var localImagId = document.getElementById("img" + i);
 //必须设置初始大小
 localImagId.style.width = "70px";
 localImagId.style.height = "70px";
 //图片异常的捕捉,防止用户修改后缀来伪造图片
 try {
  localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
  localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
 }
 catch (e) {
  alert("您上传的图片格式不正确,请重新选择!");
  return false;
 }
 imgObjPreview.style.display = 'none';
 document.selection.empty();
 }
 }
 return true;
 }
 </script>

HTML代码:

<form method="post" enctype="multipart/form-data"> 
 <input type="file" accept="image/png,image/gif,image/jpg,image/jpeg" id="files" name="files" multiple onchange="javascript:setImagePreviews();" />
 <input type="button" id="upload" value="上传" />
 <div id="preview"> 
 </div> 
</form>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
juqery 学习之四 筛选过滤
Nov 30 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
javascript使用定时函数实现跳转到某个页面
Dec 25 Javascript
原生js的弹出层且其内的窗口居中
May 14 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
Aug 04 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
js获取文件里面的所有文件名(实例)
Oct 17 Javascript
node创建Vue项目步骤详解
Mar 06 Javascript
vue使用better-scroll实现滑动以及左右联动
Jun 30 Javascript
JavaScript实现串行请求的示例代码
Sep 14 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
Feb 14 #Javascript
javascript中BOM基础知识总结
Feb 14 #Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
Feb 14 #Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
Feb 14 #Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
Feb 14 #Javascript
浅谈JS验证表单文本域输入空格的问题
Feb 14 #Javascript
js 动态生成html 触发事件传参字符转义的实例
Feb 14 #Javascript
You might like
php中对2个数组相加的函数
2011/06/24 PHP
三种php连接access数据库方法
2013/11/11 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP自定义错误用法示例
2016/09/28 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
Python连接DB2数据库
2016/08/27 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python 发送json数据操作实例分析
2019/10/15 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
Python绘制数码晶体管日期
2021/02/19 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
五型班组建设方案
2014/02/10 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
作风转变年心得体会
2014/10/22 职场文书
优秀员工推荐材料
2014/12/20 职场文书
教师辞职书范文
2015/02/26 职场文书