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

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

  1. <!DOCTYPE HTML>  
  2. <html>  
  3. <head>  
  4.     <title>上传图片</title>  
  5.     <meta charset="utf-8">  
  6. </head>  
  7. <body>  
  8.     <iframe name="uploadfrm" id="uploadfrm" style="display: none;"></iframe>  
  9.     <form name="formHead" method="post" action="" id="formHead" enctype="multipart/form-data" target="uploadfrm">  
  10.   
  11.         <div>  
  12.             <div>  
  13.                 <input type="file" name="file_head" id="file_head" onchange="javascript:setImagePreview();" />  
  14.             </div>  
  15.             <div>  
  16.                 <div id="DivUp" style="display: none">  
  17.                     <input type="submit" data-inline="true" id="BtnUp" value="确认上传" data-mini="true" />  
  18.                 </div>  
  19.             </div>  
  20.         </div>  
  21.     </form>  
  22.     <div data-role="fieldcontain">  
  23.         <div id="localImag">  
  24.             <img id="preview" width="-1" height="-1" style="display: none" />  
  25.         </div>  
  26.     </div>  
  27.           
  28.   
  29.     <script type="text/javascript">  
  30.         function setImagePreview() {  
  31.             var preview, img_txt, localImag, file_head = document.getElementById("file_head"),  
  32.             picture = file_head.value;  
  33.             if (!picture.match(/.jpg|.gif|.png|.bmp/i)) return alert("您上传的图片格式不正确,请重新选择!"),  
  34.             !1;  
  35.             if (preview = document.getElementById("preview"), file_head.files && file_head.files[0]) preview.style.display = "block",  
  36.                 preview.style.width = "63px",  
  37.                 preview.style.height = "63px",  
  38.                 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]);  
  39.             else {  
  40.                 file_head.select(),  
  41.                 file_head.blur(),  
  42.                 img_txt = document.selection.createRange().text,  
  43.                 localImag = document.getElementById("localImag"),  
  44.                 localImag.style.width = "63px",  
  45.                 localImag.style.height = "63px";  
  46.                 try {  
  47.                     localImag.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)",  
  48.                     localImag.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = img_txt  
  49.                 } catch(f) {  
  50.                     return alert("您上传的图片格式不正确,请重新选择!"),  
  51.                     !1  
  52.                 }  
  53.                 preview.style.display = "none",  
  54.                 document.selection.empty()  
  55.             }  
  56.             return document.getElementById("DivUp").style.display = "block",  
  57.             !0  
  58.         }  
  59.     </script>  
  60. </body>  
  61. </html>  
<!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" οnchange="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>

服务器端程序自己加,如果自己没有服务器也可以调用http://jwzhangjie.com/preview.html来做测试

下面是调用几个浏览器的测试效果:

Chrome浏览器效果:


QQ浏览器效果:


拍照效果:



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值