H5调用手机摄像头,实时拍照上传(旧)

H5调用手机摄像头,完成拍照,实时上传(旧)

项目开发中,偶尔会遇到网页中调用手机摄像头,通过相册选择或直接实时拍照的方式,完成图片上传的功能型需求。

  • 今天,就通过一个小的案例,演示一下完整的实现流程【效果截图省略】。
  • 仅供参考,代码年限久远,请联系博主获取最新资源。

案例全部代码,示下:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="apple-mobile-web-app-status-bar-style" content="black">
	<link rel="stylesheet" href="statics/css/udy_css/mui.min.css">
	<link rel="stylesheet" href="statics/css/udy_css/change_info.css">
	<title>修改资料</title>
	<!--[if lte IE 8]>
		<script type="text/javascript">alert("您的浏览器版本较低,请升级版本以获得更好的体验!");</script>
	<![endif]-->
	<style>
		body{line-height: 0;}img{border: none;}
		.mui-input-group .mui-input-row.bd0:after{height: 0;}
		.mui-input-group .mui-input-row.bd0{border-bottom: #c8c7cc 1px solid;}
		.mui-card{position: relative;border:#c8c7cc 1px dotted;padding: 8px;-webkit-box-shadow:none;box-shadow: none;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;margin-bottom: 30px;}
		/*图片背景*/
		.mui-card-header:after{height: 0;}
		.camerabox{width: 100%;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}
		.beforecamera{padding: 0;margin:0;margin-top: 20px;border:none;}
		.beforecamera .mui-card-header{width:100%;text-align: center;}
		.beforecamera .mui-card-header>div{width: 100%;height:100%;font-weight: normal;color: #09f;}
		/*提交按钮*/
		.mui-btn{height: 50px;box-sizing: border-box;line-height: 50px;padding: 0;font-size: 16px;}
		/*图形按钮*/
		.fileInpBtn{
        	position:absolute;left:2;top: 0;
        	width:100%;height:100%;
        	cursor:pointer;
        	filter:alpha(opacity:0);opacity:0;
        	border-color: orange;
        }
        /*.camerabox{
        	position:absolute;left:2;top: 0;
        	border-color: red;
        }*/
	</style>
</head>

<body>
	<header class="mui-bar mui-bar-nav">
		<a class="mui-icon mui-icon-left-nav mui-pull-left" href="javascript:history.go(-1);"></a>
		<h1 class="mui-title">修改资料</h1>
	</header>
	<div class="mui-content">
		<form class="mui-input-group" action="" method="post" name="">
			
			<div class="mui-input-row">
				<label>姓名</label>
				<input type="text" class="mui-input-clear" placeholder="仅限中文">
			</div>	
			<div class="mui-input-row">
				<label>手机号码</label>
				<input type="text" class="mui-input-clear" placeholder="输入11位手机号码">
			</div>
			<div class="mui-input-row bd0">
				<label>身份证号码</label>
				<input type="text" class="mui-input-clear" placeholder="输入15或18位身份证号码">
			</div>
			
			
			<div class="mui-card beforecamera">
				<div class="mui-card-header">
					<div>请拍摄证件实体,并录入信息</div>
				</div>
			</div>
			<!--身份证主页-->			
			<div class="mui-card">
				<div class="mui-card-content">
					<img class="camerabox" id="newImage" src="statics/images/udy_images/idcard_home.png" />
					<input class="fileInpBtn" id="fileInpBtn" type="file"  onchange="showPicture(this)" accept="image/*"  multiple> 
				</div>
			</div>
			<!--身份证副页-->	
			<div class="mui-card">
				<div class="mui-card-content">
					<img class="camerabox" id="newImage2" src="statics/images/udy_images/idcard_vice.png" />
					<input class="fileInpBtn" id="fileInpBtn2" type="file"  onchange="showPicture2(this)" accept="image/*"  multiple> 
				</div>
			</div>
			<!--毕业证主页-->	
			<div class="mui-card">
				<div class="mui-card-content">
					<img class="camerabox" id="newImage3" src="statics/images/udy_images/gradution_home.png" />
					<input class="fileInpBtn" id="fileInpBtn3" type="file"  onchange="showPicture3(this)" accept="image/*"  multiple> 
				</div>
			</div>
			<!--其他证件-->	
			<div class="mui-card">
				<div class="mui-card-content">
					<img class="camerabox" id="newImage4" src="statics/images/udy_images/othercard_home.png" />
					<input class="fileInpBtn" id="fileInpBtn4" type="file"  onchange="showPicture4(this)" accept="image/*"  multiple> 
				</div>
			</div>
						
			
			<div class="mui-button-row" style="height: auto;padding: 20px;">
				<!--提交按钮-->
				<button type="submit" class="mui-btn mui-btn-block mui-btn-primary" onclick="return true;">确认无误,立即修改</button>&nbsp;&nbsp;
				<button type="button" class="mui-btn mui-btn-block mui-btn-danger" onclick="javascript:history.go(-1);">取消</button>
				
			</div>
		</form>
	</div>
	
	
	<script src="statics/js/udy_js/mui.min.js"></script>
	<script>
		function showPicture(imgFile){
			alert("url地址:"+window.URL.createObjectURL(imgFile.files[0]));
			/*获取上传文件的路径,并赋给img标签*/
			document.getElementById("newImage").src = window.URL.createObjectURL(imgFile.files[0]);
		}
		
		function showPicture2(imgFile2){
			alert("url地址2:"+window.URL.createObjectURL(imgFile2.files[0]));
			/*获取上传文件的路径,并赋给img标签*/
			document.getElementById("newImage2").src = window.URL.createObjectURL(imgFile2.files[0]);
		}
		
		function showPicture3(imgFile3){
			alert("url地址3:"+window.URL.createObjectURL(imgFile3.files[0]));
			/*获取上传文件的路径,并赋给img标签*/
			document.getElementById("newImage3").src = window.URL.createObjectURL(imgFile3.files[0]);
		}
		
		function showPicture4(imgFile4){
			alert("url地址4:"+window.URL.createObjectURL(imgFile4.files[0]));
			/*获取上传文件的路径,并赋给img标签*/
			document.getElementById("newImage4").src = window.URL.createObjectURL(imgFile4.files[0]);
		}
	</script>
</body>
</html>


注意:
  1. 使用了代码调用手机相机:
    <input type ="file" accept="image/*" multiple>
    使用前,注意事项,如下:
  2. 代码中的img标签的id类,对应input type ="file"的点击事件,以及页面底部的js函数,都是一 一对应的关系!
  3. 代码中,对于不同浏览器的兼容不同,手机中内置浏览器和其他厂商的浏览器.apk,对于手机相机的权限(开启陀螺仪权限)不尽相同。
  4. 这其中差异性取决于手机型号版本的差异性、浏览器的差异性、浏览器权限的差异性等多个因素。

以上就是关于“ H5调用手机摄像头,实时拍照上传 ” 的全部内容。

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值