用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数组去重3种方法的性能测试与比较
Mar 26 Javascript
jquery ajax post提交数据乱码
Nov 05 Javascript
js形成页面的一种遮罩效果实例代码
Jan 04 Javascript
js的正则test,match,exec详细解析
Jan 29 Javascript
js实现在同一窗口浏览图片
Sep 17 Javascript
深入理解jQuery事件绑定
Jun 02 Javascript
Vue.js第三天学习笔记(计算属性computed)
Dec 01 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
Apr 12 Javascript
微信小程序简单的canvas裁剪图片功能详解
Jul 12 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 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与ASP
2006/10/09 PHP
如何判断php数组的维度
2013/06/10 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
js数组的基本使用总结
2021/01/18 Javascript
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
2013年大学生的自我鉴定
2013/10/24 职场文书
经管应届生求职信
2013/11/17 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
加薪通知
2015/04/25 职场文书
投标单位介绍信
2015/05/05 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
Python基础详解之邮件处理
2021/04/28 Python