H5上传本地图片并预览功能


Posted in Javascript onMay 08, 2017

最近工作中需要H5上传显示图片的功能,如图:

H5上传本地图片并预览功能

直接上代码:

html部分

<div class="works-wrap"> 
 <div class="figure-box" id="figure_box"></div> 
 <div class="add-btn"> 
 <input type="file" id="imgUploadBtn" /> 
 <a href="javascript:void(0);" rel="external nofollow" ><i></i>添加作品</a></div> 
 </div> 
</div>

我这边用css将input[type=file] 设置成了opticy:0; 这样可以看起来更像原生的上传。

var addWork = { 
 add: function(btn, figure_box) { 
 var figureBox = document.getElementById(figure_box); //获取显示图片的div元素 
 var input = document.getElementById(btn); //获取选择图片的input元素 
 //这边是判断本浏览器是否支持这个API。 
 if (typeof FileReader === 'undefined') { 
 alert("浏览器版本过低,请先更新您的浏览器~"); 
 input.setAttribute('disabled', 'disabled'); 
 } else { 
 input.addEventListener('change', readFile, false); 

 //如果支持就监听改变事件,一旦改变了就运行readFile函数。 
 } 
 
 function readFile() { 
 var file = this.files[0]; //获取file对象 
 //判断file的类型是不是图片类型。 
 if (!/image\/\w+/.test(file.type)) { 
 alert("请上传一张图片~"); 
 return false; 
 } 
 
 var reader = new FileReader(); //声明一个FileReader实例 
 reader.readAsDataURL(file); //调用readAsDataURL方法来读取选中的图像文件 
 //最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片 
 reader.onload = function(e) { 
 // 创建一个新增的图片和文字input 
 var figure = $('<div class="figure"><div class="figure-hd">我的头部</div><div class="figure-bd"><img src="' + this.result + '" /><textarea placeholder="请输入文字"></textarea></div></div>'); 
 figure.appendTo(figureBox); 
 } 
 } 
 } 
}

更多精彩内容请参考专题《ajax上传技术汇总》,《javascript文件上传操作汇总》和《jQuery上传操作汇总》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 表单规则集合对象
Jul 21 Javascript
Javascript 键盘keyCode键码值表
Dec 24 Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
JS数组的赋值介绍
Mar 10 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 Javascript
iview日期控件,双向绑定日期格式的方法
Mar 15 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
May 15 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 #jQuery
vue2.0实现导航菜单切换效果
May 08 #Javascript
jquery replace方法去空格
May 08 #jQuery
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 #jQuery
html5+canvas实现支持触屏的签名插件教程
May 08 #Javascript
JQuery实现图片轮播效果
May 08 #jQuery
jQuery中的deferred对象和extend方法详解
May 08 #jQuery
You might like
利用php绘制饼状图的实现代码
2013/06/07 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
使用python Django做网页
2013/11/04 Python
使用Python编写Linux系统守护进程实例
2015/02/03 Python
Python写入CSV文件的方法
2015/07/08 Python
Python中异常重试的解决方案详解
2017/05/05 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
python实现电子词典
2020/03/03 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
毕业生的自我评价分享
2013/12/18 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
个人授权委托书模板
2014/09/14 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
大学生操行评语大全
2014/12/31 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书