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 相关文章推荐
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
Jun 01 Javascript
基于zepto.js简单实现上传图片
Jun 21 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
原生js二级联动效果
Jun 20 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
Vue实现底部侧边工具栏的实例代码
Sep 03 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
详解关于element级联选择器数据回显问题
2019/02/20 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
Python实现多线程抓取妹子图
2015/08/08 Python
使用Python设计一个代码统计工具
2018/04/04 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
学校课外活动总结
2014/05/08 职场文书
技术股份合作协议书
2014/10/05 职场文书
中秋节晚会开场白
2015/05/29 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
springboot用户数据修改的详细实现
2022/04/06 Java/Android