用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 回车事件实现代码
Aug 23 Javascript
了不起的node.js读书笔记之node.js中的特性
Dec 22 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
Feb 10 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
May 26 Javascript
javascript获取select标签选中的值
Jun 04 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
Jul 10 Javascript
Typescript的三种运行方式(小结)
Sep 18 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php设置编码格式的方法
2013/03/05 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
php有道翻译api调用方法实例
2014/12/22 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
python用post访问restful服务接口的方法
2018/12/07 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
中学劳技课教师的自我评价
2014/02/05 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js