用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移动div层-javascript 拖动层
Mar 22 Javascript
js loading加载效果实现代码
Nov 24 Javascript
替代window.event.srcElement效果的可兼容性的函数
Dec 18 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
Oct 26 Javascript
jQuery实现简单倒计时功能的方法
Jul 04 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
Dec 12 Javascript
layer父页获取弹出层输入框里面的值方法
Sep 02 Javascript
分享JS表单验证源码(带错误提示及密码等级)
Jan 05 Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
javascript实现滚动条效果
Mar 24 Javascript
js实现带箭头的进度流程
Mar 26 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 高手之路(二)
2006/10/09 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
PHP实现八皇后算法
2019/05/06 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
谈谈JS中的!!
2017/12/07 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
深入了解Django中间件及其方法
2019/07/26 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
python的help函数如何使用
2020/06/11 Python
商务日语专业毕业生求职信
2013/10/26 职场文书
公司前台接待岗位职责
2013/12/03 职场文书
暑期培训随笔感言
2014/03/10 职场文书
技校毕业生自荐书
2014/05/23 职场文书
户外拓展训练感想
2015/08/07 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python