用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 相关文章推荐
Expandable &quot;Detail&quot; Table Rows
Aug 29 Javascript
Js 获取当前日期时间及其它操作实现代码
Mar 04 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
Nov 27 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
悬浮数字的实现案例
Feb 19 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
Aug 11 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
Apr 20 Javascript
JavaScript正则表达式的分组匹配详解
Feb 13 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 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 数组的一个悲剧?
2011/05/11 PHP
PHP sprintf()函数用例解析
2011/05/18 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
js获取及判断键盘按键的方法
2015/12/01 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
TensorFlow高效读取数据的方法示例
2018/02/06 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
python groupby 函数 as_index详解
2019/12/16 Python
python如何使用代码运行助手
2020/07/03 Python
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
会计专业毕业自荐书范文
2014/02/08 职场文书
节水倡议书范文
2014/04/15 职场文书
干部考核评语
2014/04/29 职场文书
关于长城的导游词
2015/01/30 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书