文件上传服务器、文件展示等异步问题

问题:

文件上传模块:当文件已经上传完成,文件进度已经走完了,但是服务器响应还没有返回结果,出现了,获取不到上传后的文件路径,需要等待服务器返回结果后,才能获取文件路径并点击跳转到指定的下载地址。

【时机:文件进度已经100%了但是服务器返回结果还没有返回、获取不到跳转地址】

解决方案:

1.区分有跳转链接和没有链接的text 文本的颜色

2.前端阻塞:当没有服务器没有返回结果的时候,前端手动阻塞 进度条的进度 为 95%,当文件服务器返回结果后,然后手动将进度条置为 100%;

【下面为部分 核心代码】

 <div class="files" ref="filesRef"><div class="files_title">附件列表</div><div class="file" v-for="(item, index) in multipartFiles" :key="item.fileName"><div style="display: flex;flex-direction: column;width: 100%"><div style="display: flex;justify-content: space-between;align-items: center"><div style="display: flex;justify-content: flex-start;align-items: center;"><el-icon v-if="item.percentage===100 && item.response" color="rgba(0,0,0,.45)" size="14"><Link/></el-icon><el-icon v-else class="is-loading"><Loading/></el-icon><a v-if="item.response" :href="item.url" class="name contents" target="_blank">{{item.name}}</a><span v-else class="name contents" style="color: grey;pointer-events: none">{{item.name}}</span></div><el-icon color="rgba(0,0,0,.45)" size="14" @click="handleDelMul(index)"><Delete/></el-icon></div><div style="margin-top: 4px"><!--              5% 等待服务端返回。    核心操作 --><el-progress v-if="!item.response":percentage="item.response&&uploadCompleted?100:Math.max(0,item.percentage - 5)"/></div></div></div></div>
      <ElUploadstyle="margin-left: 2px"class="upload-demo":action="action":headers="{'X-Access-Token': token,}":on-progress="onProgress":show-file-list="false":before-upload="beforeUpload":on-error="handleUploadError":on-success="handleUploadSuccess"multiple><template #trigger><ElButton size="small">上传附件</ElButton></template></ElUpload>

进度条方法:

   function onProgress(progressEvent, file) {if (multipartFiles.value.filter(item => item.uid === file.uid).length === 0) {multipartFiles.value.push(file)}// 计算上传进度百分比file.percentage = parseInt(Math.round((progressEvent.loaded * 100) / progressEvent.total));}

其他方法

    function handleUploadError(error) {console.log('上传失败', error);}const uploadCompleted = ref(false)async function handleUploadSuccess(e) {console.log('上传成功', e.result, multipartFiles.value);if (e.code === 200) {uploadCompleted.value = true;//这里处理上传成功后的逻辑const res = mergeArrays(multipartFiles.value, [e.result])console.log(res, 'res')multipartFiles.value = res;}}// 合并数组并处理重复项 --- 特殊处理function mergeArrays(array1, array2) {// 合并数组并处理重复项return array1.map((item1) => {const item2 = array2.find((item2) => item2.name === item1.name && item2.name === item1.name);if (item2) {return {...item1, ...item2};} else {return item1;}});}

效果:
在这里插入图片描述

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

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

相关文章

excel中怎么用乘法、加法来替代AND和OR函数

你可以使用乘法和加法来替代Excel中的AND和OR函数&#xff0c;虽然这样做可能会增加公式的复杂度&#xff0c;但在某些情况下是可行的。 1. 使用乘法替代AND函数&#xff1a;AND函数用于判断一系列条件是否同时成立&#xff0c;如果所有条件都为TRUE&#xff0c;则返回TRUE&…

IOMMU和SMMU详解

前言&#xff1a; IOMMU&#xff08;输入输出内存管理单元&#xff09;的原理与CPU中的MMU&#xff08;内存管理单元&#xff09;相似。它的作用是管理设备的内存访问请求&#xff0c;允许安全、高效地在设备和内存之间直接传输数据。IOMMU通常用于支持高速数据传输的设备&…

java生成数据库数据到excel当做下拉选择,copy就完事~

背景&#xff1a;由于需要下载模板&#xff0c;模板包含下拉选择框&#xff0c;但是下拉选择框不想手写&#xff0c;并且需要从数据库读取&#xff0c;由于直接设置excel会有单元格最大255个字符长度限制&#xff0c;所以用到以下部分代码。 思路&#xff1a;由于数据模板在sh…

怎么通过Javascript脚本实现远程控制一路开关

怎么通过Javascript脚本实现远程控制一路开关呢&#xff1f; 本文描述了使用Javascript脚本调用HTTP接口&#xff0c;实现控制一路开关。一路开关可控制一路照明、排风扇等电器。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称1智能WiFi…

JSON Web Token 入门

JSON Web Token&#xff08;缩写 JWT&#xff09;是目前最流行的跨域认证解决方案&#xff0c;本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后&#xff0c;在当前对话&…

基于微信小程序的宠物寄养小程序,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

Redis中的慢查询日志和监视器

慢查询 添加新日志 在每次执行命令的之前和之后&#xff0c;程序都会记录微妙格式的当前UNIX时间戳&#xff0c;这两个时间戳之间的差就是服务器执行命令所耗费的时长&#xff0c;服务器会将这个时长作为参数之一传给slowlogPushEntryIfNeeded函数&#xff0c;而slowlogPushE…

网络安全数字孪生:一种新颖的汽车软件解决方案

摘要 随着汽车行业转变为数据驱动的业务&#xff0c;软件在车辆的开发和维护中发挥了核心作用。随着软件数量的增加&#xff0c;相应的网络安全风险、责任和监管也随之增加&#xff0c;传统方法变得不再适用于这类任务。相应的结果是整车厂和供应商都在努力应对汽车软件日益增加…

System Dashboard for Mac:强大的系统监控与管理工具

System Dashboard for Mac是一款专为苹果电脑设计的系统监控与管理工具&#xff0c;以其直观易用的界面和全面的功能&#xff0c;深受用户喜爱。 System Dashboard for Mac v1.10.11激活版下载 这款软件能够实时监测系统的重要参数&#xff0c;包括CPU使用率、内存利用率、硬盘…

nginxtomcat笔记

nginx是一个轻量级高性能的http和反向代理web服务器&#xff0c;优点&#xff1a;占用内存少&#xff0c;并发能力强 实验主机&#xff1a;192.168.200.141 192.168.200.142 1.虚拟主机 1.1基于域名&#xff1a;一台服务器&#xff0c;一个端口&#xff0c;部署多个网站 在ng…

yolov5 的几个问题,讲的比较清楚

yolov5, 几个问题 【BCELoss】pytorch中的BCELoss理解 三个损失函数原理讲解 https://zhuanlan.zhihu.com/p/458597638 yolov5源码解析–输出 YOLOv5系列(十) 解析损失部分loss(详尽) 1、输入数据是 xywh, 针对原图的, 然后,变成 0-1, x/原图w, y/原图h, w/原图w, h/原图h,…

51-43 DragNUWA,集成文本、图像和轨迹实现视频生成细粒度控制

微软 NWA 系列主要功能及发布时间如下&#xff1a; 22年11月&#xff0c;微软亚洲研究院、北京大学联合提出同时覆盖语言、图像和视频的统一多模态生成模型女娲NWA&#xff0c;直接包揽草图转图像、图像补全、视频预测、文字指导修改视频等8项SOTA。23年3月&#xff0c;微软亚…

LLM学习之自然语言处理简单叙述

自然语言处理基础 自然语言处理&#xff1a;让计算机读懂人所写好的这些文本&#xff0c;能够像人一样进行交互。 自然语言处理的任务和应用 任务&#xff1a; 词性标注 part of speech tagging 动词&#xff0c;名词&#xff0c;形容词&#xff1f; 命名实体的识别 name…

【Java基础】23.接口

文章目录 一、接口的概念1.接口介绍2.接口与类相似点3.接口与类的区别4.接口特性5.抽象类和接口的区别 二、接口的声明三、接口的实现四、接口的继承五、接口的多继承六、标记接口 一、接口的概念 1.接口介绍 接口&#xff08;英文&#xff1a;Interface&#xff09;&#xf…

Springboot+Vue项目-基于Java+MySQL的海滨体育馆管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

Mongodb支持事务吗?

一、概念 1.1、MongoDB事务简介 MongoDB 是一个非关系型数据库管理系统&#xff0c;最初并不支持事务。然而&#xff0c;随着时间的推移&#xff0c;MongoDB 在其4.0版本中引入了多文档事务支持&#xff0c;使得在单个集合中执行多个操作成为可能。 In MongoDB, an operation…

iStat Menus for Mac:强大的系统监控工具

iStat Menus for Mac是一款功能强大的系统监控工具&#xff0c;专为Mac用户设计&#xff0c;旨在帮助用户全面了解电脑的运行状态&#xff0c;提高电脑的性能和稳定性。 iStat Menus for Mac v6.73 (1239)中文版下载 该软件可以实时监测CPU使用率、内存占用、网络速度、硬盘活动…

“磁性蝴蝶”:创新结构纳米石墨烯能更精确控制自旋磁行为

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 深度好文&#xff1a;1300字丨7分钟阅读 摘要&#xff1a;新加坡国立大学的研究团队&#xff0c;开发出一种蝴蝶形磁性纳米石墨烯&#xff0c;包含四个具有铁磁和反铁磁相互作用的不…

微信小程序:基于MySQL+Nodejs的汽车品牌管理系统

各位好&#xff0c;接上期&#xff0c;今天分享一个通过本地MySQLNodejs服务器实现CRUD功能的微信小程序&#xff0c;一起来看看吧~ 干货&#xff01;微信小程序通过NodeJs连接MySQL数据库https://jslhyh32.blog.csdn.net/article/details/137890154?spm1001.2014.3001.5502 …

深入docker-swarm overlay网络模型

目录 1.简介 2.网络模型 3.docker_gwbridge网络 3.1.docker_gwbridge网关地址 3.2.检查docker_gwbridge网络 3.2.1.查找任务容器eth接口 3.2.2.查找ingress-sbox容器eth接口 4.检查ingress网络 4.1.检查ingress网络 4.2.检查ingress网络的命名空间 4.2.1.查找任务容…