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 相关文章推荐
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
jQuery中用dom操作替代正则表达式
Dec 29 Javascript
js中函数声明与函数表达式
Jun 03 Javascript
jquery操作angularjs对象
Jun 26 Javascript
使用 vue-i18n 切换中英文效果
May 23 Javascript
iview Upload组件多个文件上传的示例代码
Sep 30 Javascript
Vue项目引进ElementUI组件的方法
Nov 11 Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 Javascript
Vue仿百度搜索功能
Dec 28 Vue.js
如何使用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的5个入手程序
2006/11/23 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
Javascript----文件操作
2007/01/18 Javascript
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
jquery实现自适应banner焦点图
2017/02/16 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
浅谈python之高阶函数和匿名函数
2019/03/21 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
大学自主招生推荐信
2014/05/10 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
生产车间管理制度
2015/08/04 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
MySQL之DML语言
2021/04/05 MySQL
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL