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 相关文章推荐
cnblogs TagCloud基于jquery的实现代码
Jun 11 Javascript
javascript继承之为什么要继承
Nov 10 Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 Javascript
jquery 图片缩放拖动的简单实例
Jan 08 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
jQuery EasyUi实战教程之布局篇
Jan 26 Javascript
使用jquery提交form表单并自定义action的实现代码
May 25 Javascript
AngularJS入门教程之服务(Service)
Jul 27 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
vue.js 使用axios实现下载功能的示例
Mar 05 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 Javascript
微信小程序搭建自己的Https服务器
May 02 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
PHP令牌 Token改进版
2008/07/18 PHP
用Zend Encode编写开发PHP程序
2010/02/21 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
jQuery 瀑布流 浮动布局(一)(延迟AJAX加载图片)
2012/05/23 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
Python中的闭包实例详解
2014/08/29 Python
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
使用K.function()调试keras操作
2020/06/17 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
园艺专业毕业生求职信
2014/09/02 职场文书
完整版商业计划书
2014/09/15 职场文书
预备党员对照检查材料思想汇报
2014/09/24 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
离婚起诉书范本
2015/05/18 职场文书
个人收入证明范本
2015/06/12 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL