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 获取用户客户端操作系统版本
Aug 25 Javascript
Android中资源文件(非代码部分)的使用概览
Dec 18 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
Node.js中的缓冲与流模块详细介绍
Feb 11 Javascript
js使用post 方式打开新窗口
Feb 26 Javascript
JavaScript实现的多种鼠标拖放效果
Nov 03 Javascript
JavaScript判断数组是否存在key的简单实例
Aug 03 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
微信小程序左滑动显示菜单功能的实现
Jun 14 Javascript
Vue编程式跳转的实例代码详解
Jul 10 Javascript
微信小程序工具函数封装
Oct 28 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 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编码规范-php coding standard
2007/03/16 PHP
PHP insert语法详解
2008/06/07 PHP
PHP has encountered an Access Violation 错误的解决方法
2010/01/17 PHP
PHP 万年历实现代码
2012/10/18 PHP
php防止sql注入代码实例
2013/12/18 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
php检测文本的编码
2015/07/26 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
Javascript基础教程之数组 array
2015/01/18 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
JS中数组重排序方法
2016/11/11 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
基于vue-router 多级路由redirect 重定向的问题
2018/09/03 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
python 美化输出信息的实例
2018/10/15 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
Django框架反向解析操作详解
2019/11/28 Python
Python实现中值滤波去噪方式
2019/12/18 Python
浅析Django中关于session的使用
2019/12/30 Python
Python json转字典字符方法实例解析
2020/04/13 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物