用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 相关文章推荐
基于jquery的划词搜索实现(备忘)
Sep 14 Javascript
对 jQuery 中 data 方法的误解分析
Jun 18 Javascript
基于Jquery easyui 选中特定的tab
Nov 17 Javascript
JS使用JSON作为参数实例分析
Jun 23 Javascript
修改Jquery Dialog 位置的实现方法
Aug 26 Javascript
jQuery遍历节点树方法分析
Sep 08 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
May 19 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 Javascript
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
Node.js 中判断一个文件是否存在
Aug 24 Javascript
React实现动效弹窗组件
Jun 21 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查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php的4种常见运行方式
2015/03/20 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
js获取网页高度(详细整理)
2012/12/28 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
jquery实现楼层滚动效果
2018/01/01 jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
深入理解Python 代码优化详解
2014/10/27 Python
python实现解数独程序代码
2017/04/12 Python
Python IDLE清空窗口的实例
2018/06/25 Python
python实现串口自动触发工作的示例
2019/07/02 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
促销活动方案模板
2014/02/24 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
法定代表人免职证明
2015/06/24 职场文书
国庆节新闻稿
2015/07/17 职场文书
体育部部长竞选稿
2015/11/21 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers