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 相关文章推荐
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
CSS3实现动态背景登录框的代码
Jul 28 Javascript
谈谈target=_new和_blank的不同之处
Oct 25 Javascript
Jquery鼠标放上去显示全名的实现方法
Feb 06 Javascript
mongoose更新对象的两种方法示例比较
Dec 19 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
微信小程序实现登录注册tab切换效果
Dec 29 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
Jul 04 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 Javascript
如何使JavaScript休眠或等待
Apr 27 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
第四节--构造函数和析构函数
2006/11/16 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
PHP创建XML接口示例
2019/07/04 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
浅说js变量
2011/05/25 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
Angular4 中内置指令的基本用法
2017/07/31 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
师范生自我鉴定范文
2013/10/05 职场文书
村委会主任先进事迹
2014/01/15 职场文书
研究生毕业鉴定
2014/01/29 职场文书
个人银行贷款担保书
2014/04/01 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
高中美术教学反思
2016/02/17 职场文书
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python