vant拍摄视频上传以及多张图片上传

news2024/10/5 14:40:50

数据定义

data() {
    return {
        fileList: [],
        vedioList: [],
        formData: '',
        fileTypes: 'image/png,image/jpeg,image/jpg,image/jpeg',
    }
},
beforeMount() {
    this.formData = new FormData()
},

拍摄视频上传

<van-uploader
    v-if="radio === '1'"
    v-model="vedioList"
    accept="video/*"
    :max-count="1"
    :max-size="52428800"
    capture="camera"
    :after-read="(file, detail) => uploadAfterReadFnVedio(file, detail, '现场视频')"
    :before-delete="(e, $event) => { uploaderBeforeDeleteVedio(e, $event) }">
</van-uploader>

拍摄视频上传事件

uploadAfterReadFnVedio(file, { index }, name) {
	 this.formData.set('files', file.file)
	 file.status = 'uploading'
	 file.message = '上传中...'
	 // 此时可以自行将文件上传至服务器
	 UploadVideo(this.formData)
	     .then((res) => {
	         this.vedioList.push({ url: res.data[0], key: res.data[0], name: name })
	         this.vedioList.splice(index, 1)
	     })
	     .catch((_) => {
	         // eslint-disable-next-line no-param-reassign
	         file.status = 'failed'
	         // eslint-disable-next-line no-param-reassign
	         file.message = '上传失败'
	     })
},

选择多张图片上传

<van-uploader
    v-model="fileList"
    :accept="fileTypes"
    multiple
    :max-size="5242880"
    :max-count="6"
    :after-read="(file, detail) => uploadAfterReadFn(file, detail, reqSubmitSBSJSBGZ.ListPic, '现场图片')"
    :before-delete="(e, $event) => { uploaderBeforeDelete(e, $event, reqSubmitSBSJSBGZ.ListPic) }">
</van-uploader>

多张图片上传事件

uploadAfterReadFn(file, { index }, list, name) {
   const types = this.fileTypes.split(',')
   // 判断是一张还是多张图片
   if (Array.isArray(file)) {
       file.forEach(item => {
           if (!types.find((v) => v === item.file.type)) {
               this.$toast({
                   type: 'fail',
                   message: '请上传正确的图片',
                   className: 'noticeWidth'
               })
           }
           if (item.file.size <= 5 * 1024 * 1024) {
               this.$toast({
                   type: 'fail',
                   message: '上传文件超过5M',
                   className: 'noticeWidth'
               })
           }
           this.formData.set('files', item.file)
           // eslint-disable-next-line no-param-reassign
           item.status = 'uploading'
           // eslint-disable-next-line no-param-reassign
           item.message = '上传中...'
           // 此时可以自行将文件上传至服务器
           UploadFile(this.formData)
               .then((res) => {
                   this.fileList.push({ url: item.content, isImage: true, key: res.data[0] })
                   this.fileList.splice(index, 1)
                   list.push({ url: res.data[0], isImage: true, key: res.data[0] })
               })
               .catch((_) => {
                   // eslint-disable-next-line no-param-reassign
                   item.status = 'failed'
                   // eslint-disable-next-line no-param-reassign
                   item.message = '上传失败'
               })
       })
   } else {
       if (!types.find((v) => v === file.file.type)) {
           this.$toast({
               type: 'fail',
               message: '请上传正确的图片',
               className: 'noticeWidth'
           })
           return false
       }
       if (file.file.size > 5 * 1024 * 1024) {
           this.$toast({
               type: 'fail',
               message: '上传文件超过5M',
               className: 'noticeWidth'
           })
           return false
       }
       this.formData.set('files', file.file)
       // eslint-disable-next-line no-param-reassign
       file.status = 'uploading'
       // eslint-disable-next-line no-param-reassign
       file.message = '上传中...'
       // 此时可以自行将文件上传至服务器
       UploadFile(this.formData)
           .then((res) => {
               this.fileList.push({ url: file.content, isImage: true, key: res.data[0] })
               this.fileList.splice(index, 1)
               list.splice(index, 1, {
                   url: res.data[0],
                   value: res.data[0],
                   key: name
               })
               // eslint-disable-next-line no-param-reassign
               list = [...list]
           })
           .catch((_) => {
               // eslint-disable-next-line no-param-reassign
               file.status = 'failed'
               // eslint-disable-next-line no-param-reassign
               file.message = '上传失败'
           })
   }
},

toast样式

<style>
.noticeWidth{
    min-width: 150px !important;
    line-height: 34px;
    font-size: 24px;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1901293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自然之美无需雕琢

《自然之美&#xff0c;无需雕琢 ”》在这个颜值至上的时代&#xff0c;但在温馨氛围中&#xff0c;单依纯以一种意想不到的方式&#xff0c;为我们诠释了自然之美的真谛。而医生的回答&#xff0c;如同一股清流耳目一新。“我说医生你看我这张脸&#xff0c;有没有哪里要动的。…

团队编程:提升代码质量与知识共享的利器

目录 前言1. 什么是团队编程&#xff1f;1.1 团队编程的起源1.2 团队编程的工作流程 2. 团队编程的优势2.1 提高代码质量2.2 促进知识共享2.3 增强团队协作2.4 提高开发效率 3. 团队编程的挑战3.1 开发成本较高3.2 需要良好的团队协作3.3 个人风格和习惯的差异3.4 长时间的集中…

2024亚太杯数学建模竞赛(B题)的全面解析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024亚太杯数学建模竞赛&#xff08;B题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解…

Docker:一、安装与卸载、配置阿里云加速器(Ubuntu)

目录 &#x1f341;安装docker&#x1f332;1、环境准备&#x1f332;2、安装docker Engine&#x1f9ca;1、卸载旧版、任何冲突的包&#x1f9ca;2、使用存储库安装&#x1f9ca;3、安装 Docker 包。&#x1f9ca;4、查询是否安装成功&#x1f9ca;5、运行hello-world镜像&…

图像处理调试软件推荐

对于图像处理的调试&#xff0c;使用具有图形用户界面&#xff08;GUI&#xff09;且支持实时调整和预览的图像处理软件&#xff0c;可以大大提高工作效率。以下是几款常用且功能强大的图像处理调试软件推荐&#xff1a; ImageJ/FijiMATLABOpenCV with GUI LibrariesNI Vision …

Stable Diffusion:最全详细图解

Stable Diffusion&#xff0c;作为一种革命性的图像生成模型&#xff0c;自发布以来便因其卓越的生成质量和高效的计算性能而受到广泛关注。不同于以往的生成模型&#xff0c;Stable Diffusion在生成图像的过程中&#xff0c;采用了独特的扩散过程&#xff0c;结合深度学习技术…

WAIC:生成式 AI 时代的到来,高通创新未来!

目录 01 在终端侧算力上&#xff0c;动作最快的就是高通 02 模型优化&#xff0c;完成最后一块拼图 在WAIC上&#xff0c;高通展示的生成式AI创新让我们看到了未来的曙光。 生成式 AI 的爆发带来了意想不到的产业格局变化&#xff0c;其速度之快令人惊叹。 仅在一个月前&…

考研必备~总结严蔚敏教授《数据结构》课程的重要知识点及考点

作者主页&#xff1a;知孤云出岫 目录 1. 基本概念1.1 数据结构的定义1.2 抽象数据类型 (ADT) 2. 线性表2.1 顺序表2.2 链表 3. 栈和队列3.1 栈3.2 队列 4. 树和二叉树4.1 树的基本概念4.2 二叉树 5. 图5.1 图的基本概念5.2 图的遍历 6. 查找和排序6.1 查找6.2 排序 7. 重点考…

[图解]SysML和EA建模住宅安全系统-11-接口块

1 00:00:00,660 --> 00:00:04,480 接下来的步骤是定义系统上下文 2 00:00:04,960 --> 00:00:07,750 首先是图17.17 3 00:00:09,000 --> 00:00:10,510 系统上下文展示了 4 00:00:10,520 --> 00:00:12,510 ESS和外部系统、用户 5 00:00:12,520 --> 00:00:14,1…

简介时间复杂度

好了&#xff0c;今天我们来了解一下&#xff0c;我们在做练习题中常出现的一个名词。时间复杂度。我相信大家如果有在练习过题目的话。对这个名词应该都不陌生吧。但是可能很少的去思考它是干什么的代表的什么意思。反正我以前练习的时候就是这样。我只知道有这么一个名词在题…

DevOps实战:使用GitLab+Jenkins+Kubernetes(k8s)建立CI_CD解决方案

一.系统环境 本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。 服务器版本docker软件版本Kubernetes(k8s)集群版本CPU架构CentOS Linux release 7.4.1708 (Core)Docker version 20.10.12v1.21.9x86_64CI/CD解决方案架构图:CI/CD解决方案架构图描述:程序员写好代码之…

测试几个 ocr 对日语的识别情况

测试几个 ocr 对日语的识别情况 1. EasyOCR2. PaddleOCR3. Deepdoc&#xff08;识别pdf中图片&#xff09;4. Deepdoc&#xff08;识别pdf中文字&#xff09;5. Nvidia neva-22b6. Claude 3.5 sonnet 识别图片中的文字7. Claude 3.5 sonnet 识别 pdf 中表格8. OpenAI gpt-4o 识…

CMS Made Simple v2.2.15 远程命令执行漏洞(CVE-2022-23906)

前言 CVE-2022-23906 是一个远程命令执行&#xff08;RCE&#xff09;漏洞&#xff0c;存在于 CMS Made Simple v2.2.15 中。该漏洞通过上传头像功能进行利用&#xff0c;攻击者可以上传一个经过特殊构造的图片文件来触发漏洞。 漏洞详情 CMS Made Simple v2.2.15 中的头像上…

verilog读写文件注意事项

想要的16进制数是文本格式提供的文件&#xff0c;想将16进制数提取到变量内&#xff0c; 可以使用 f s c a n f ( f d 1 , " 也可以使用 fscanf(fd1,"%h",rd_byte);实现 也可以使用 fscanf(fd1,"也可以使用readmemh(“./FILE/1.txt”,mem);//fe放在mem[0…

alphazero学习

AlphaGoZero是AlphaGo算法的升级版本。不需要像训练AlphaGo那样&#xff0c;不需要用人类棋局这些先验知识训练&#xff0c;用MCTS自我博弈产生实时动态产生训练样本。用MCTS来创建训练集&#xff0c;然后训练nnet建模的策略网络和价值网络。就是用MCTSPlayer产生的数据来训练和…

VRPTW(MATLAB):常春藤算法(IVY)求解带时间窗的车辆路径问题VRPTW,MATLAB代码

详细介绍 VRPTW&#xff08;MATLAB&#xff09;&#xff1a;常春藤算法&#xff08;Ivy algorithm&#xff0c;IVY&#xff09;求解带时间窗的车辆路径问题VRPTW&#xff08;提供MATLAB代码&#xff09;-CSDN博客 ********************************求解结果******************…

web零碎知识2

不知道我的这个axios的包导进去没。 找一下关键词&#xff1a; http请求协议&#xff1a;就是进行交互式的格式 需要定义好 这个式一发一收短连接 而且没有记忆 这个分为三个部分 第一个式请求行&#xff0c;第二个就是请求头 第三个就是请求体 以get方式进行请求的失手请求…

C语言 -- 深入理解指针(一)

C语言 -- 深入理解指针&#xff08;一&#xff09; 1.内存和地址1.1 内存1.2 究竟该如何理解编址 2. 指针变量和地址2.1 取地址操作符&#xff08;&&#xff09;​2.2 指针变量和解引用操作符&#xff08;*&#xff09;​​2.2.1 指针变量2.2.2 如何拆解指针类型2.2.3 解引…

Java语言程序设计基础篇(第10版)编程练习题13.18(使用 Rational 类)

第十三章第十八题(使用 Rational 类) 题目要求&#xff1a; 编写程序&#xff0c;使用 Rational 类计算下面的求和数列: 你将会发现输出是不正确的 &#xff0c;因为整数溢出(太大了)。为了解决这个问题 &#xff0c;参见编程练习題13.15。代码参考&#xff1a; package cha…

羊大师:小暑至,热浪涌,三伏悠长防暑忙

随着夏日的脚步悄然加速&#xff0c;我们迎来了小暑节气。小暑&#xff0c;一个预示着盛夏正式拉开序幕的时节&#xff0c;它携带着滚滚热浪&#xff0c;让大地仿佛置身于火炉之中。而随之而来的三伏天&#xff0c;更是长达40天的酷热考验&#xff0c;让人不禁感叹夏日的漫长与…