H5實(shí)現(xiàn)手機(jī)拍照和選擇上傳功能
本文實(shí)例為大家分享了H5手機(jī)拍照和選擇上傳的具體代碼,供大家參考,具體內(nèi)容如下
1. html/ js代碼:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta http-equiv="Access-Control-Allow-Origin" content="*" />
<link rel="stylesheet" href="../../css/mui.min.css" >
<link rel="stylesheet" type="text/css" href="../../css/app.css" />
<link rel="stylesheet" type="text/css" href="../../css/icons-extra.css" />
<link rel="stylesheet" type="text/css" href="../../css/mui.picker.min.css" >
</head>
<body onload="startTime()">
<div class="mui-card" style="height: 20%;">
<div class=" mui-card-media">
<img class="a" id="img" />
<label for="myFile">
<span id="format" class="a mui-icon mui-icon-camera" style="font-size: -webkit-xxx-large;"></span>
</label>
<input style="display: none;" type="file" capture="camera" id="myFile" onchange="upload('#myFile', '#img');" />
</div>
</div>
<script src="../../js/mui.js"></script>
<script src="../../js/mui.picker.min.js"></script>
<script src="../../js/host.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
/**拍照
* @param {Object} c
* @param {Object} d
*/
var upload = function(c, d) {
"use strict";
var $c = document.querySelector(c),
$d = document.querySelector(d),
file = $c.files[0],
picPath = $c.value,
reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function(e) {
$d.setAttribute("src", e.target.result);
};
localStorage.setItem('picPath', picPath);
};
</script>
</html>
2. 參數(shù)解析:
1. accept 屬性(允許上傳兩種文件類型:gif 和 jpeg)
2. capture 捕獲到系統(tǒng)默認(rèn)的設(shè)備,有三個(gè)參數(shù)值可設(shè)置
3. camera--照相機(jī);camcorder--攝像機(jī); microphone--錄音
4. js代碼做了封裝, 參數(shù)一表示 "選擇文件"的 id,參數(shù)二表示 "顯示圖片" 的 id,
5. 若是 ios 只能調(diào)用攝像頭,不能選擇打開相冊(cè)的話,就把這個(gè)【capture="camera"】去掉,直接加一個(gè)屬性 multiple
6. file 表示你選中的那個(gè)圖片,然后它里面有幾個(gè)屬性 name、size、type、slice等,也都非常實(shí)用,
7. FileReader作為文件API的重要成員用于讀取文件,根據(jù)W3C的定義,F(xiàn)ileReader接口提供了讀取文件的方法和包含讀取結(jié)果的事件模型。
8. 調(diào)用 FileReader 的 readAsDataURL 接口,將啟動(dòng)異步加載文件內(nèi)容,通過給 reader 監(jiān)聽一個(gè) onload 事件,
9. 將數(shù)據(jù)加載完畢后,在onload事件處理中,通過 event 的 result 屬性即可獲得文件內(nèi)容,然后扔進(jìn) img 的 src 即可 打開圖片并預(yù)覽。
3. 效果展示:
點(diǎn)擊拍照的圖標(biāo),如果在web端就是瀏覽文件上傳,手機(jī)端可進(jìn)行拍照功能。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js onmousewheel事件多次觸發(fā)問題解決方法
做一個(gè)首屏和第二屏之間滾動(dòng)鼠標(biāo)滾輪就可以整平切換的效果,遇到了很多問題,下面是問題解決方法2014-10-10
Javascript自定義排序 node運(yùn)行 實(shí)例
Javascript自定義排序 node運(yùn)行 實(shí)例,需要的朋友可以參考一下2013-06-06
ant-design-pro使用qiankun微服務(wù)配置動(dòng)態(tài)主題色的問題
這篇文章主要介紹了ant-design-pro使用qiankun微服務(wù)配置動(dòng)態(tài)主題色,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
多個(gè)jquery.datatable共存,checkbox全選異常的快速解決方法
這篇文章主要介紹了多個(gè)jquery.datatable共存,checkbox全選異常的快速解決方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
js canvas實(shí)現(xiàn)二維碼和圖片合成的海報(bào)
這篇文章主要為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)二維碼和圖片合成的海報(bào),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
JavaScript實(shí)現(xiàn)手寫循環(huán)滑動(dòng)效果
最近一直在做業(yè)務(wù),遇到一個(gè)需求是頁面頂部需要展示圖片,可以拖動(dòng),拖動(dòng)到最后一張的時(shí)候需要無縫切換到第一張,從而實(shí)現(xiàn)循環(huán)滑動(dòng),所以本文就來和大家分享一下實(shí)現(xiàn)方法2023-05-05
淺析JS動(dòng)態(tài)創(chuàng)建元素【兩種方法】
下面小編就為大家?guī)硪黄獪\析JS動(dòng)態(tài)創(chuàng)建元素【兩種方法】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家。一起跟隨小編過來看看吧2016-04-04
promise和co搭配生成器函數(shù)方式解決js代碼異步流程的比較
這篇文章主要介紹了promise和co搭配生成器函數(shù)方式解決js代碼異步流程的比較,在es6中引入的原生Promise為js的異步回調(diào)問題帶來了一個(gè)新的解決方式co模塊搭配Generator函數(shù)的同步寫法,更是將js的異步回調(diào)帶了更優(yōu)雅的寫法。感興趣的小伙伴們可以參考一下2018-05-05

