vue+axios實(shí)現(xiàn)圖片上傳識別人臉的示例代碼
本文主要介紹了vue+axios實(shí)現(xiàn)圖片上傳識別人臉的示例代碼,分享給大家,具體如下:
先看最終效果:
這里采用的是vant的文件上傳組件,通過上傳圖片后端識別圖片里的人臉,返回到前端,獲取該人臉匹配的工號或?qū)W號。以便后續(xù)其他系統(tǒng)使用,比如上傳成功了一個人臉照片識別成功,可以通過人臉開啟會議室的門禁。目前只是做了一個人臉上傳的效果。
Axios請求
使用axios請求數(shù)據(jù),method:post時,data默認(rèn)的傳參數(shù)據(jù)類型是字符串的類型,如需要傳遞json格式,需要引入qs.js,看后端接受的類型而定。
Qs處理數(shù)據(jù)分析
首先qs是一個npm倉庫所管理的包,可通過npm install qs命令進(jìn)行安裝.
地址: www.npmjs.com/package/qs
qs.parse()、qs.stringify()
- qs.parse()將URL解析成對象的形式
- qs.stringify()將對象 序列化成URL的形式,以&進(jìn)行拼接
以下,是在實(shí)際項目中的使用方式:
var data = { code:GetRequest().code, file:file.content } axios({ method:'post', url:'/app/face/upload', data:qs.stringify(data) })
Vant上傳文件格式
上傳文件,這里需要注意點(diǎn)就是傳遞到后端需要的格式,可以是文件流,也可以是base64,盡管兩種類型,vant都已經(jīng)幫我們處理過了,文件流,我們也想可以直接使用formData直接傳給后端,base64有些后端他需要我們自己處理過濾掉這里我們需要使用正則fileList[0].content.replace(/^data:image\/\w+;base64,/, '')
然后再傳遞到后端
完整代碼
<div id="app"> <div style="display:flex; justify-content: center; align-items: center; width: 100vw; height: 100vh;"> <div> <van-uploader v-model="fileList" upload-text='人臉正面照' :max-count="1" :after-read="afterRead" ></van-uploader> <p style="text-align:center;font-size:15px;" v-if="data">學(xué)號/工號:{{data}}</p> </div> </div> </div> <script> var app = new Vue({ el: '#app', data: { fileList: [], data:'', }, methods:{ afterRead(file) { //上傳中,添加上傳中的狀態(tài)提示 status 為uploading file.status = 'uploading'; file.message = '上傳中...'; var data = { code:this.$route.query.code, file:file.content } axios({ method:'post', url:'app/face/upload', data:{ code:GetRequest().code, file:file.content } }).then((res)=>{ //請求返回,并且已經(jīng)獲取到成功的狀態(tài),設(shè)置上傳成功的提示 status 為done if(res.data.code == 0){ file.status = 'done'; file.message = ''; this.data = res.data.data.userNo this.$notify({ type: 'success', message: '上傳成功' }); //請求返回,接受到上傳失敗的提示 status為failed }else{ file.status = 'failed'; file.message = '上傳失敗'; this.$notify({ type: 'warning', message: res.data.msg }); this.data = '' } }).catch(()=>{ file.status = 'failed'; file.message = '上傳失敗'; this.data = '' }) }, } }) </script>
到此這篇關(guān)于vue+axios實(shí)現(xiàn)圖片上傳識別人臉的示例代碼的文章就介紹到這了,更多相關(guān)vue axios圖片上傳識別人臉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue進(jìn)階之CodeMirror的應(yīng)用小結(jié)
CodeMirror支持在線編輯代碼,風(fēng)格包括js, java, php, c++等等100多種語言,下面這篇文章主要來和大家講講CodeMirror的應(yīng)用,感興趣的可以了解一下2023-06-06詳解在vue中如何實(shí)現(xiàn)屏幕錄制與直播推流功能
屏幕錄制和直播推流是現(xiàn)代Web應(yīng)用中常用的功能,Vue作為一種流行的JavaScript框架,提供了一些工具和庫,可以方便地實(shí)現(xiàn)屏幕錄制和直播推流功能,本文將介紹如何在Vue中進(jìn)行屏幕錄制和直播推流,需要的朋友可以參考下2024-01-01多頁vue應(yīng)用的單頁面打包方法(內(nèi)含打包模式的應(yīng)用)
這篇文章主要介紹了多頁vue應(yīng)用的單頁面打包方法(內(nèi)含打包模式的應(yīng)用),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06vue+px2rem實(shí)現(xiàn)pc端大屏自適應(yīng)的實(shí)例代碼(rem適配)
不管是移動端的適配,還是大屏需求,都離不開不一個單位rem,rem是相對于根元素的字體大小的單位,下面這篇文章主要給大家介紹了關(guān)于vue+px2rem實(shí)現(xiàn)pc端大屏自適應(yīng)的相關(guān)資料,需要的朋友可以參考下2021-08-08為vue中的data賦值computed計算屬性后,出現(xiàn)undefined原因及解決
這篇文章主要介紹了為vue中的data賦值computed計算屬性后,出現(xiàn)undefined原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07uniapp+vue3路由跳轉(zhuǎn)傳參的實(shí)現(xiàn)
本文主要介紹了uniapp+vue3路由跳轉(zhuǎn)傳參的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11