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 相关文章推荐
基于jquery的tab切换 js原理
Apr 01 Javascript
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
Javascript 数组排序详解
Oct 22 Javascript
jQuery获取样式中颜色值的方法
Jan 29 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
Mar 28 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
js HTML5上传示例代码完整版
Oct 10 Javascript
微信小程序 less文件编译成wxss文件实现办法
Dec 05 Javascript
Angular JS数据的双向绑定详解及实例
Dec 31 Javascript
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
vue项目设置scrollTop不起作用(总结)
Dec 21 Javascript
vue移动端模态框(可传参)的实现
Nov 20 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
PHP中一个控制字符串输出的函数
2006/10/09 PHP
php FPDF类库应用实现代码
2009/03/20 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
2013/08/14 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
python 进程池pool使用详解
2020/10/15 Python
印度服装购物网站:Limeroad
2018/09/26 全球购物
战友聚会邀请函
2014/01/18 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
勤俭节约主题班会
2015/08/13 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server