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 03 Javascript
潜说js对象和数组
May 25 Javascript
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
jQuery操作select下拉框的text值和value值的方法
May 31 Javascript
Javascript之String对象详解
Jun 08 Javascript
jQuery实现的表格展开伸缩效果实例
Sep 07 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
Dec 23 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
Express进阶之log4js实用入门指南
Feb 10 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
如何使用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+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
php生成微信红包数组的方法
2019/09/05 PHP
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
python中类的属性和方法介绍
2018/11/27 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
小学综合实践活动总结
2014/07/07 职场文书
就业协议书样本
2014/08/20 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
暑期家教宣传单
2015/07/14 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
MySQL 字符集 character
2022/05/04 MySQL