用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 一个自定义长度的文本自动换行的函数
Aug 19 Javascript
jquery.ui.draggable中文文档
Nov 24 Javascript
js中call与apply的用法小结
Dec 28 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
Dec 28 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 Javascript
理解javascript中的闭包
Jan 11 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
JS学习笔记之原型链和利用原型实现继承详解
May 29 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
Sep 03 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 Vue.js
利用策略模式与装饰模式扩展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/01/05 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[20:30]职业巡回赛回顾
2018/08/09 DOTA
深入理解Python 代码优化详解
2014/10/27 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
详解Python进程间通信之命名管道
2017/08/28 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
以太网Ethernet IEEE802.3
2013/08/05 面试题
幼儿园元旦亲子活动方案
2014/02/17 职场文书
小学生评语集锦
2014/04/18 职场文书
教师求职信范文
2014/05/24 职场文书
土木工程求职信
2014/05/29 职场文书
施工安全标语
2014/06/07 职场文书
材料化学专业求职信
2014/07/15 职场文书
初中生毕业评语
2014/12/29 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python