vue+axios实现图片上传识别人脸的示例代码

 更新时间:2021年11月09日 15:00:45   作者:5加H  
本文主要介绍了vue+axios实现图片上传识别人脸,这里采用的是vant的文件上传组件,通过上传图片后端识别图片里的人脸,感兴趣的可以了解一下

本文主要介绍了vue+axios实现图片上传识别人脸的示例代码,分享给大家,具体如下:

先看最终效果:

这里采用的是vant的文件上传组件,通过上传图片后端识别图片里的人脸,返回到前端,获取该人脸匹配的工号或学号。以便后续其他系统使用,比如上传成功了一个人脸照片识别成功,可以通过人脸开启会议室的门禁。目前只是做了一个人脸上传的效果。

Axios请求

使用axios请求数据,method:post时,data默认的传参数据类型是字符串的类型,如需要传递json格式,需要引入qs.js,看后端接受的类型而定。

Qs处理数据分析

首先qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装.
地址: www.npmjs.com/package/qs

qs.parse()、qs.stringify()

  • qs.parse()将URL解析成对象的形式
  • qs.stringify()将对象 序列化成URL的形式,以&进行拼接

以下,是在实际项目中的使用方式:

 var data = {
    code:GetRequest().code,
    file:file.content
}
axios({
   method:'post',
   url:'/app/face/upload',
  data:qs.stringify(data)
})

Vant上传文件格式

上传文件,这里需要注意点就是传递到后端需要的格式,可以是文件流,也可以是base64,尽管两种类型,vant都已经帮我们处理过了,文件流,我们也想可以直接使用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">学号/工号:{{data}}</p>
            </div>
          </div>
      </div>
 
  <script>
   var app = new Vue({
    el: '#app',
    data: {
      fileList: [],
      data:'',
    },
    methods:{
      afterRead(file) {
      //上传中,添加上传中的状态提示 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)=>{
        //请求返回,并且已经获取到成功的状态,设置上传成功的提示 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>

到此这篇关于vue+axios实现图片上传识别人脸的示例代码的文章就介绍到这了,更多相关vue axios图片上传识别人脸内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue+elementUI下拉框自定义颜色选择器方式

    Vue+elementUI下拉框自定义颜色选择器方式

    这篇文章主要介绍了Vue+elementUI下拉框自定义颜色选择器方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Vue如何指定不编译的文件夹和favicon.ico

    Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 在vue项目中使用codemirror插件实现代码编辑器功能

    在vue项目中使用codemirror插件实现代码编辑器功能

    这篇文章主要介绍了在vue项目中使用codemirror插件实现代码编辑器功能(代码高亮显示及自动提示),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 详解Vue中watch的详细用法

    详解Vue中watch的详细用法

    在vue中,使用watch来响应数据的变化。watch的用法大致有三种。下面代码是watch的一种简单的用法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-11-11
  • vue+ElementUi+iframe实现轮播不同的网站

    vue+ElementUi+iframe实现轮播不同的网站

    需要实现一个轮播图,轮播内容是不同的网站,并实现鼠标滑动时停止轮播,当鼠标10秒内不动时继续轮播,所以本文给大家介绍了用vue+ElementUi+iframe实现轮播不同的网站,需要的朋友可以参考下
    2024-02-02
  • Vue使用Tinymce富文本自定义toolbar按钮的实践

    Vue使用Tinymce富文本自定义toolbar按钮的实践

    本文主要介绍了Vue使用Tinymce富文本自定义toolbar按钮,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • vue3 获取元素高度不准的问题

    vue3 获取元素高度不准的问题

    这篇文章主要介绍了vue3 获取元素高度不准的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue+vue-validator 表单验证功能的实现代码

    vue+vue-validator 表单验证功能的实现代码

    这篇文章主要介绍了vue+vue-validator 表单验证功能的实现代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-11-11
  • Vue 中如何利用 new Date() 获取当前时间

    Vue 中如何利用 new Date() 获取当前时间

    在 Vue 开发中,利用 new Date() 方法可以方便地获取当前时间,并通过 Date 对象的方法进行时间格式化和操作。通过本文的介绍,您应该对在 Vue 中获取当前时间有了更深入的了解,并了解了一些常见的时间操作方法,需要的朋友可以参考下
    2023-07-07
  • Vue中Number方法将字符串转换为数字的过程

    Vue中Number方法将字符串转换为数字的过程

    这篇文章主要介绍了Vue中Number方法将字符串转换为数字,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论