这次遇到的问题是后端要求 FormData 上传,上传的是身份证正反面照片和姓名身份证号这些参数,这里我用到了 vant 的自定义上传,顺变给大家也分享下

看图

1、安装 vant

 Vue 2 项目,安装 Vant 2.x 版本:npm i vant -SVue 3 项目,安装 Vant 3.x 版本:npm i vant@next -S

2、按需引入 vant 里的 Uploader 模块

import Vue from 'vue'
import { Uploader } from 'vant' // Uploader 模块
import 'vant/lib/Uploader/style' // vant 样式
Vue.use(Uploader)

3、HTML 代码如下 这里我是用的 quasar 组件库

<q-card class="q-pa-md common-shadow text-center q-mt-lg"><div style="font-size:16px">请上传您的身份证人像面</div><van-uploader v-model="fileList1" class="q-mt-md"><img v-show="!(fileList1 && fileList1.length)" src="../../assets/img/upLoader/reverse.png" alt="" style="width:200px"></van-uploader><q-separator class="q-my-md"/><div style="font-size:16px">请上传您的身份证国徽面</div><van-uploader v-model="fileList2" class="q-mt-md"><img v-show="!(fileList2 && fileList2.length)" src="../../assets/img/upLoader/positive.png" alt="" style="width:200px"></van-uploader>
</q-card>

4、data 定一下两个数组 用来双向绑定后 身份证信息 file

   username: '', // 真实姓名usercode: '', // 身份证号fileList1: [], // 上传1fileList2: [] // 上传2

5、下面开始使用 FormData 上传

 uploadFile () { // 上传事件return new Promise((resolve, reject) => {const formdata = new FormData()formdata.append('real_name', this.username)formdata.append('token', localStorage.getItem('token'))formdata.append('id_card', this.usercode)formdata.append('front_of_id_card', this.fileList1[0].file)formdata.append('reverse_of_id_card', this.fileList2[0].file)// 创建xhr,使用ajax进行文件上传const xhr = new XMLHttpRequest()xhr.open('post', `${ConfigBaseURL}api/personcenter/certification_post`)// 回调xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {const res = JSON.parse(xhr.responseText)if (res.state === '402') { // 这里根据自定义的状态码判断 !!!!!!!!resolve(xhr.responseText)Vue.toasted.show(res.info, {duration: 2000,type: 'success'})} else {reject()Vue.toasted.show('提交失败', {duration: 2000,type: 'error'})}} else if (xhr.readyState === 4) {reject()}}// 上传成功 将数据清空this.username = '' // 上传成功 将数据清空this.usercode = '' // 上传成功 将数据清空this.fileList1 = [] // 上传成功 将数据清空this.fileList2 = [] // 上传成功 将数据清空// 将formdata上传xhr.send(formdata)})}

6、再见 好用别忘了 收藏 点赞

FormData 上传图片之身份认证相关推荐

  1. vue3+nodejs基于RSA加密的身份认证(token的组成及使用)

    nodejs学习 1.express & nodejs & mysql 新建项目 2.nodejs尝试登陆接口 3.nodejs的前端项目搭建以及登陆接口开发 4.前端上传图片form ...

  2. python的requests快速上手、高级用法和身份认证

    https://blog.csdn.net/qq_25134989/article/details/78800209 快速上手 迫不及待了吗?本页内容为如何入门 Requests 提供了很好的指引.其 ...

  3. node.js学习总结:node.js的内置模块,模块化,npm与包 express,前后端身份认证 JWT认证机制

    node.js学习总结 什么是node.js node.js的内置模块 fs系统模块 path路径模块 http模块 模块化 npm与包 express express路由 express+mysql ...

  4. Shiro01 功能点框图、架构图、身份认证逻辑、身份认证代码实现

    基本功能点 功能点框图 功能点说明 1.Authentication:身份认证/登录,验证用户是不是拥有相应的身份: 2.Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个 ...

  5. 配置用户通过Telnet登录设备的身份认证(AAA本地认证)

    背景信息 用户通过Telnet登录设备时,设备上必须配置验证方式,否则用户无法成功登录设备.设备支持不认证.密码认证和AAA认证三种用户界面的验证方式,其中AAA认证方式安全性最高. 采用AAA本地认 ...

  6. Delphi实现WebService带身份认证的数据传输

    WebService使得不同开发工具开发出来的程序可以在网络连通的环境下相互通信,它最大的特点就是标准化(基于XML的一系列标准)带来的跨平台.跨开发工具的通用性,基于HTTP带来的畅通无阻的能力(跨 ...

  7. 生物识别最新进展:动态密码语音无监督身份认证系统通过科技成果鉴定

    近日,由中国电子学会主持召开的"基于动态密码语音的无监督身份认证系统"科技成果鉴定会在清华大学举办,AI科技大本营受邀出席. 该成果由清华大学.北京得意音通技术有限责任公司共同完成 ...

  8. labview的用户身份认证系统设计_elasticsearch 集群身份认证与用户鉴权

    elasticsearch在默认安装后,没有提供任何安全保护. 在elasticsearch.yml配置了server.host=0.0.0.0导致公网可以访问es集群. 数据安全的基本需求: 1.身 ...

  9. 干货 | 清华大学郑方:语音技术用于身份认证的理论与实践

    本讲座选自清华大学语音和语言技术中心主任郑方教授近期于清华大数据"技术·前沿"系列讲座上所做的题为<语音技术用于身份认证的理论与实践>的演讲. 以下为演讲的主要内容: ...

最新文章

  1. 不吹牛,中国车主已经实现了「停车自由」
  2. hdu4746(莫比乌斯反演)
  3. 如何使用git上传本地文件到码云上【详细步骤】
  4. 快速列出所有字段_快速掌握目标课题的研究现状 | 应用实例
  5. 前端学习(1973)vue之电商管理系统电商系统之完成修改的操作
  6. SQL Server登录名,用户和安全标识符(SID)
  7. 防御XSS攻击的七条原则
  8. HttpServletResponse response详解
  9. STM32实现水下四旋翼(三)通信任务——遥控器SBUS通信
  10. 结合百度地图城市编码的数据表
  11. CNN-ResNet
  12. 卷积神经网络交通标志识别
  13. html怎么画虚线空心圆,教你用ps怎么画一个虚线的空心圆
  14. AST使用eval运行函数,更换数值
  15. MySQL SQL语句练习题
  16. C++每日一课(八)
  17. 分析system_call中断处理过程
  18. NOIP2017D2T3-列队
  19. 引用数据类型的类型转换
  20. 怎样用计算机打出Abc,妙用智能ABC输入法 -电脑资料

热门文章

  1. 手机视频聚合App影响 视频网站转型堪忧
  2. KAIZEN是什么?
  3. OpenCV Using Python——RGB颜色空间中的肤色检测
  4. c语言8bit转10bit,8bit、8+2bit和10bit 手机屏幕三种色深你真的能看出来吗?
  5. 微软crm mscrm 区域城市联动 用js+plug-in实现
  6. c语言不会数学和英语,c语言和英语哪个难,是不是和数学逻辑用语差不多,数学学得好,英语不好,适合学c语言吗...
  7. 如何对待焦虑与拖延症
  8. Linux 连接sftp 影响下载速度的因素
  9. java撞南墙:桌面应用与web开发
  10. Tomcat性能的测试