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获取图片长和宽度的代码
Nov 24 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
Jul 12 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
May 12 Javascript
简单谈谈javascript代码复用模式
Jan 28 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
Jun 09 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
Dec 22 Javascript
JavaScript新增样式规则(推荐)
Jul 19 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
Angular.js中$resource高大上的数据交互详解
Jul 30 Javascript
vue.js或js实现中文A-Z排序的方法
Mar 08 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
深入理解javascript prototype的相关知识
Sep 19 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
php5.2.0内存管理改进
2007/01/22 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Python 装饰器使用详解
2017/07/29 Python
python频繁写入文件时提速的方法
2019/06/26 Python
python异常处理try except过程解析
2020/02/03 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
AURALog面试题软件测试方面
2013/10/22 面试题
春节晚会主持词
2014/03/24 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
放牛班的春天观后感
2015/06/01 职场文书
学校学期工作总结
2015/08/13 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript
golang生成vcf通讯录格式文件详情
2022/03/25 Golang