用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 相关文章推荐
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
Js实现无刷新删除内容
Apr 29 Javascript
javascript之IE版本检测超简单方法
Aug 20 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
基于Vue实现后台系统权限控制的示例代码
Aug 29 Javascript
Vue使用mixins实现压缩图片代码
Mar 14 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
Angular4.0动画操作实例详解
May 10 Javascript
前端 javascript 实现文件下载的示例
Nov 24 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验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php调整服务器时间的方法
2015/04/03 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
Vue组件化开发思考
2018/02/02 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
Python  连接字符串(join %)
2008/09/06 Python
十个Python程序员易犯的错误
2015/12/15 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
高中数学教师求职信
2013/10/30 职场文书
我的求职择业计划书
2014/04/04 职场文书
搞笑爱情保证书
2014/04/29 职场文书
数学教育专业求职信
2014/07/22 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
电话营销开场白
2015/05/29 职场文书
工作后的感想
2015/08/07 职场文书
python中的装饰器该如何使用
2021/06/18 Python
Go并发4种方法简明讲解
2022/04/06 Golang
Java Spring Lifecycle的使用
2022/05/06 Java/Android