首頁 web前端 H5教程 HTML5+Canvas呼叫手機拍照功能實現圖片上傳功能(圖文詳解上篇)

HTML5+Canvas呼叫手機拍照功能實現圖片上傳功能(圖文詳解上篇)

May 17, 2018 pm 01:54 PM
canvas html5 圖片上傳 手機拍照

這篇文章主要為大家詳細介紹了HTML5+Canvas,和jquery技術,調用手機拍照功能實現圖片上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下

因為最近一段時間,一直在弄微信項目,其中涉及到了證件上傳的功能,剛開始的時候一點頭緒都沒有,上網查了很多資料,QQ群裡面也問了不少人,很多人說如果是app程序,可以申請系統權限,然後再去調用系統底層的東西,但是微信是在瀏覽器裡面操作的,我們自定義的頁面也是通過微信內置瀏覽器打開的,而且微信瀏覽器在內部進行了很多特殊處理,封鎖了很多東西,所以要在頁面調用拍照功能或者是打開手機系統的圖庫目錄是不可能的,當然,這些都只是大夥兒理論上的猜測而已,而在我查了兩天的資料之後,發現這個問題原來是可以解決的,而且實現的過程居然也很簡單。只是用到了HTML5的file檔案上傳功能,再配合canvas即可。下面附上原始碼:

<html> 
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
<meta name="format-detection" content="telephone=yes"> 
<head> 
 <meta charset="UTF-8"> 
 <title>上传证件</title> 
 <style> 
 body { 
  margin: 20px 20%; 
  color:#777; 
  text-align: center; 
 } 
 #result{ 
  margin-top: 20px; 
 } 
 </style> 
</head> 
<body> 
 <h1 class="text-center">上传证件...</h1> 
 <hr/> 
 <input type="file"/> 
 <p id="result" align="center"></p> 
 <hr/> 
 
 <!-- 引入jQuery --> 
 <script type="text/javascript" src="../js/jQuery/jquery-1.9.1.min.js"></script> 
 <script type="text/javascript" src="../js/LocalResizeIMG.js"></script> 
 
 <!-- mobileBUGFix.js 兼容修复移动设备 --> 
 <script src="../js/mobileBUGFix.mini.js" type="text/javascript"></script> 
 <script type="text/javascript"> 
 $("input:file").localResizeIMG({ 
  width: 500, 
  quality: 0.8, 
  success: function (result) { 
  var img = new Image(); 
  img.src = result.base64; 
  console.log(result.clearBase64); 
  //$("body").append(img); 
  $("#result").empty(); 
  $("#result").append(img); //呈现图像(拍照結果) 
  $.ajax({ 
   url: "upLoadImageServlet", 
   type: "POST", 
   data:{formFile:result.clearBase64}, 
   dataType: "HTML", 
   timeout: 1000, 
   error: function(){ 
   alert("Error loading PHP document"); 
   }, 
   success: function(result){ 
   //alert(result); 
   //console.log(result); 
   alert("Uploads success~") 
   } 
  }); 
  } 
 }); 
 </script> 
</body> 
</html>
登入後複製

上面實現的流程導致是這樣的,首先在前端把圖片進行壓縮,因為手機的不同,可能有的手機拍照給力,像素高,拍出來的圖片的大小就相對大一些,所以這裡透過一個插件進行了壓縮,然後轉換成為Base64的編碼,再把Base64的編碼使用AJAX來POST到伺服器,然後在Java或者PHP後台進行Base64解碼,解出來的路徑即為上傳圖片的路徑地址,然後再進行存儲,寫到檔案或資料庫裡面。

此外,這裡需要說明一個問題:很多人都說到了微信內建瀏覽器,之前我也一直認為微信內建瀏覽器就是微信自己開發的一套瀏覽器,然後對很多東西進行了限制。其實不是這樣的,微信本身並沒有再重新開發一套瀏覽器,而是調用的系統本身的瀏覽器,是根據手機的不同系統而變化的。微信內建瀏覽器呼叫的是手機系統預設瀏覽器,ios和Android系統預設瀏覽器都是webkit內核,只是對HTML5和CSS3的支援程度可能不同。因為瀏覽器只是系統的一部分,因此系統預設瀏覽器不會單獨升級,對HTM5、CSS3的支援程度與系統版本有很大關係。安卓版微信直接呼叫系統瀏覽器核心, iOS則是呼叫safari,大家可以看到下面1和3的效果是一模一樣的,1是微信瀏覽器打開的,3則是魅族MX 3自帶的系統瀏覽器打開的效果。

上面我的我都測試過了,可以正常運作。以下附上幾張照片:

1、這是在微信裡面開啟的效果






# 2.這是在手機UC瀏覽器開啟的效果:


#########3、這個是在系統自備瀏覽器裡面開啟的效果(ps:我的手機是魅族MX 3),但這個不是開啟系統圖庫目錄,而是直接定位到了系統的資料夾根目錄。 #####################下一篇會講到在Java後台進行圖片上傳操作:############HTML5+Canvas呼叫手機拍照功能實現圖片上傳功能(圖文詳解下篇)#######

以上是HTML5+Canvas呼叫手機拍照功能實現圖片上傳功能(圖文詳解上篇)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles