H5实现手机拍照和选择上传功能


Posted in Javascript onDecember 18, 2019

本文实例为大家分享了H5手机拍照和选择上传的具体代码,供大家参考,具体内容如下

1. html/ js代码:

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
 <meta name="apple-mobile-web-app-capable" content="yes">
 <meta name="apple-mobile-web-app-status-bar-style" content="black">
 <meta http-equiv="Access-Control-Allow-Origin" content="*" />
 <link rel="stylesheet" href="../../css/mui.min.css" >
 <link rel="stylesheet" type="text/css" href="../../css/app.css" />
 <link rel="stylesheet" type="text/css" href="../../css/icons-extra.css" />
 <link rel="stylesheet" type="text/css" href="../../css/mui.picker.min.css" >
 </head>
 <body onload="startTime()">
 <div class="mui-card" style="height: 20%;">
 <div class=" mui-card-media">
 <img class="a" id="img" />
 <label for="myFile">
 <span id="format" class="a mui-icon mui-icon-camera" style="font-size: -webkit-xxx-large;"></span>
 </label>
 <input style="display: none;" type="file" capture="camera" id="myFile" onchange="upload('#myFile', '#img');" />
 </div>
 </div>

 <script src="../../js/mui.js"></script>
 <script src="../../js/mui.picker.min.js"></script>
 <script src="../../js/host.js" type="text/javascript" charset="utf-8"></script>
 <script type="text/javascript"> 
 /**拍照
 * @param {Object} c
 * @param {Object} d
 */
 var upload = function(c, d) {
 "use strict";
 var $c = document.querySelector(c),
 $d = document.querySelector(d),
 file = $c.files[0],
 picPath = $c.value,
 reader = new FileReader();
 reader.readAsDataURL(file);
 reader.onload = function(e) {
 $d.setAttribute("src", e.target.result);
 };
 localStorage.setItem('picPath', picPath);
 };
 </script>
</html>

2. 参数解析:

 1. accept 属性(允许上传两种文件类型:gif 和 jpeg)  
 2. capture 捕获到系统默认的设备,有三个参数值可设置
 3. camera--照相机;camcorder--摄像机; microphone--录音  
 4. js代码做了封装, 参数一表示 "选择文件"的 id,参数二表示 "显示图片" 的 id,
 5. 若是 ios 只能调用摄像头,不能选择打开相册的话,就把这个【capture="camera"】去掉,直接加一个属性 multiple
 6. file 表示你选中的那个图片,然后它里面有几个属性 name、size、type、slice等,也都非常实用,
 7. FileReader作为文件API的重要成员用于读取文件,根据W3C的定义,FileReader接口提供了读取文件的方法和包含读取结果的事件模型。
 8. 调用 FileReader 的 readAsDataURL 接口,将启动异步加载文件内容,通过给 reader 监听一个 onload 事件,
 9. 将数据加载完毕后,在onload事件处理中,通过 event 的 result 属性即可获得文件内容,然后扔进 img 的 src 即可 打开图片并预览。

3. 效果展示:

点击拍照的图标,如果在web端就是浏览文件上传,手机端可进行拍照功能。

H5实现手机拍照和选择上传功能

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

Javascript 相关文章推荐
jquery1.4.2 for Visual studio 2010 模板文件
Jul 14 Javascript
通过Javascript创建一个选择文件的对话框代码
Jun 16 Javascript
JS、jQuery中select的用法详解
Apr 21 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
JavaScript数据类型学习笔记分享
Sep 01 Javascript
jQuery检查元素存在性(推荐)
Sep 17 Javascript
谈谈对vue响应式数据更新的误解
Aug 01 Javascript
js操作二进制数据方法
Mar 03 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
js实现div色块碰撞
Jan 16 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
ant-design表单处理和常用方法及自定义验证操作
Oct 27 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 #Javascript
js实现上传图片并显示图片名称
Dec 18 #Javascript
js实现多图和单图上传显示
Dec 18 #Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
Dec 18 #Javascript
微信小程序实用代码段(收藏版)
Dec 17 #Javascript
微信小程序修改数组长度的问题的解决
Dec 17 #Javascript
微信小程序利用云函数获取手机号码
Dec 17 #Javascript
You might like
长波知识介绍
2021/03/01 无线电
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
ThinkPHP分页实例
2014/10/15 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP生成唯一订单号
2015/07/05 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
简单理解Python中的装饰器
2015/07/31 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python实现字符串和字典的转换
2018/09/29 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
建龙钢铁面试总结
2014/04/15 面试题
怎样填写就业意向
2014/04/02 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
重阳节主题班会
2015/08/17 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
优秀创业计划书分享
2019/07/19 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python