Web调用安卓,苹果手机摄像头,本地图片和文件

liguangsunls 2022-01-01 原文


Web调用安卓,苹果手机摄像头,本地图片和文件

因为要给一个客户做一个记账WAP,里面有调用手机拍照功能。这里记录一下。以供须要的朋友。以下是完整的一个HTML页面内容,放在server上然后浏览就能够了,仅仅支持Chrome和Safari核的浏览器。我測试过QQ浏览器,Chrome,Safari浏览器都能够。在不同的手机和浏览器上面展现的方式不一样。

<!DOCTYPE HTML>
<html>
<head>
	<title>上传图片</title>
	<meta charset="utf-8">
</head>
<body>
	<iframe name="uploadfrm" id="uploadfrm" style="display: none;"></iframe>
	<form name="formHead" method="post" action="" id="formHead" enctype="multipart/form-data" target="uploadfrm">

		<div>
		    <div>
		        <input type="file" name="file_head" id="file_head" onchange="javascript:setImagePreview();" />
		    </div>
		    <div>
		        <div id="DivUp" style="display: none">
		            <input type="submit" data-inline="true" id="BtnUp" value="确认上传" data-mini="true" />
		        </div>
		    </div>
		</div>
	</form>
	<div data-role="fieldcontain">
	    <div id="localImag">
	        <img id="preview" width="-1" height="-1" style="display: none" />
	    </div>
	</div>
        

    <script type="text/javascript">
		function setImagePreview() {
			var preview, img_txt, localImag, file_head = document.getElementById("file_head"),
			picture = file_head.value;
			if (!picture.match(/.jpg|.gif|.png|.bmp/i)) return alert("您上传的图片格式不对,请又一次选择!"),
			!1;
			if (preview = document.getElementById("preview"), file_head.files && file_head.files[0]) preview.style.display = "block",
				preview.style.width = "63px",
				preview.style.height = "63px",
				preview.src = window.navigator.userAgent.indexOf("Chrome") >= 1 || window.navigator.userAgent.indexOf("Safari") >= 1 ? window.webkitURL.createObjectURL(file_head.files[0]) : window.URL.createObjectURL(file_head.files[0]);
			else {
				file_head.select(),
				file_head.blur(),
				img_txt = document.selection.createRange().text,
				localImag = document.getElementById("localImag"),
				localImag.style.width = "63px",
				localImag.style.height = "63px";
				try {
					localImag.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)",
					localImag.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = img_txt
				} catch(f) {
					return alert("您上传的图片格式不对,请又一次选择!"),
					!1
				}
				preview.style.display = "none",
				document.selection.empty()
			}
			return document.getElementById("DivUp").style.display = "block",
			!0
		}
    </script>
</body>
</html>

server端程序自己加,假设自己没有server也能够调用http://jwzhangjie.com/preview.html来做測试

以下是调用几个浏览器的測试效果:

Chrome浏览器效果:

QQ浏览器效果:

拍照效果:

发表于
2017-07-29 13:59 
liguangsunls 
阅读(555
评论(0
编辑 
收藏 
举报

 

版权声明:本文为liguangsunls原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/liguangsunls/p/7255733.html

Web调用安卓,苹果手机摄像头,本地图片和文件的更多相关文章

随机推荐

  1. Unity3d展厅模型预处理UV拆分光影烘焙材质及后处理与特效制作基本流程【2020】

    本案以一个用户的展厅VR场景为例,从模型在建模软件中的预处理说起,详细讲解Unity3d的VR开发在美工阶段的 […]...

  2. ASP.NET Core中的配置

    配置 参数文件 配置来源 命令行参数 自定义提供程序 目录文件 环境变量 内存中的.NET 对象 文件 默认配 […]...

  3. 蒲公英 · JELLY技术周刊 Vol.25 · Webpack 5 正式发布,你学废了么

    蒲公英 · JELLY技术周刊 Vol.25 阔别两年,Webpack 5 正式发布了,不仅清理掉很多冗余的功 […]...

  4. Java中浮点数的坑

    基本数据类型 浮点数存在误差 浮点数有一个需要特别注意的点就是浮点数是有误差的,比如以下这段代码你觉得输出的什 […]...

  5. PHP流程控制

    先导 PHP遍历数组的三种方式及其区别 ①使用for循环 ②使用foreach循环 ③使用while、list […]...

  6. vue-router的两种模式及原理

    两种模式,分别是 hash模式 和 history模式。 hash: hash 模式的原理是 onhashch […]...

  7. request 中url拼接排序参数与签名算法

    一、参数要求: { appId:应用在后台创建应用时分配的应用编号,与应用密钥一一对应 sign:按照当前请求 […]...

  8. CentOS服务器初始化设置

    CentOS服务器初始化设置 以阿里云服务器为例 一、挂载硬盘 1、磁盘分区 fdisk -l #查看设备,一 […]...

展开目录

目录导航