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 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
Apr 01 Javascript
javascript实现json页面分页实例代码
Feb 20 Javascript
javascript无刷新评论实现方法
May 13 Javascript
javascript操作ul中li的方法
May 14 Javascript
jQuery的事件委托实例分析
Jul 15 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
Sep 02 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
js+css3实现简单时钟特效
Sep 13 Javascript
Angular短信模板校验代码
Sep 23 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 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中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
php mail to 配置详解
2014/01/16 PHP
php验证码生成器
2017/05/24 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
web页面数据展示新想法(json)
2010/06/08 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
python程序封装为win32服务的方法
2021/03/07 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
社区爱国卫生月活动总结
2014/06/30 职场文书
捐资助学感谢信
2015/01/21 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python
Python学习之异常中的finally使用详解
2022/03/16 Python