zoukankan      html  css  js  c++  java
  • h5调用手机相册摄像头以及文件夹

    在之前一家公司的时候要做一个app里面有上传头像的功能,当时研究了好久,找到了一篇文章关于h5摄像头以及相册的调用的,所以就解决了这个问题了!!我这里记录一下以便后面有人需要,可以参考一下!!!!

    下面是完整的一个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

    下面是几个效果图:

    Chrome浏览器效果:

    QQ浏览器效果:

    拍照效果:

    参考文献:http://blog.csdn.net/jwzhangjie/article/details/40391537#comments

  • 相关阅读:
    拓扑编号
    奇怪的梦境
    奖金
    最优布线问题
    亲戚
    最小花费
    Dijkstra算法 最短路径 (部分)
    Floyed算法 最短路径
    P1164 小A点菜(背包方案数模板)
    P1049 装箱问题
  • 原文地址:https://www.cnblogs.com/lijuntao/p/6527135.html
Copyright © 2011-2022 走看看