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 相关文章推荐
获取HTML DOM节点元素的方法的总结
Aug 21 Javascript
javascript+html5实现仿flash滚动播放图片的方法
Apr 27 Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
JS去除字符串中空格的方法
Feb 14 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
vue瀑布流组件实现上拉加载更多
Mar 10 Javascript
Vue element-ui父组件控制子组件的表单校验操作
Jul 17 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
解析yii数据库的增删查改
2013/06/20 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
python提示No module named images的解决方法
2014/09/29 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python实现二分类的卡方分箱示例
2019/11/22 Python
PyQt5实现简单的计算器
2020/05/30 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
简单英文演讲稿
2014/01/01 职场文书
暑期社会实践方案
2014/02/05 职场文书
户外活动总结范文
2014/04/30 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
高中语文教学反思范文
2016/02/16 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
ant design charts 获取后端接口数据展示
2022/05/25 Javascript