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 相关文章推荐
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
50个比较实用jQuery代码段
Sep 18 Javascript
js bind 函数 使用闭包保存执行上下文
Dec 26 Javascript
如何解决Jquery库及其他库之间的$命名冲突
Sep 15 Javascript
js this函数调用无需再次抓获id,name或标签名
Mar 03 Javascript
jQuery实现简单的点赞效果
May 29 Javascript
微信小程序 开发指南详解
Sep 27 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
Apr 19 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
微信小程序自定义导航隐藏和显示功能
Jun 13 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
浅谈vue 单文件探索
Sep 05 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
分享PHP守护进程类
2015/12/30 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
jQuery拖拽 &amp; 弹出层 介绍与示例
2013/12/27 Javascript
document.write的几点使用心得
2014/05/14 Javascript
js使用心得分享
2015/01/13 Javascript
js实现进度条的方法
2015/02/13 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Python中生成ndarray实例讲解
2021/02/22 Python
python推导式的使用方法实例
2021/02/28 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
Linux中如何用命令创建目录
2016/12/02 面试题
优秀大专毕业生求职信
2014/08/04 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
单位工作证明范本
2015/06/15 职场文书