当前位置: 首页 > news >正文

vue3+vue-simple-uploader实现大文件上传

vue-simple-uploader本身是基于vue2实现,如果要使用vue3会报错。如何在vue3中使用,可参考我的另一篇文章:解决vue3中不能使用vue-simple-uploader__Jyann_的博客-CSDN博客

一.实现思路

  1. 使用vue-simple-uploader组件的uploader组件,设置自动上传为false,即可开启手动上传。:autoStart=false
  2. 设置上传参数options中的数据(target、chunkSize,fileParameterName、maxChunkRetries、testChunks、checkChunkUploadedByResponse、parseTimeRemaining);
  3. 设置testChunk:true组件会自动发起同url地址的get方式进行校验(实现秒传、分片续传、最新上传)
  4. 进行MD5计算(使用spark-md5)

二.重点理解

1:如何实现自动校验

uploader组件options参数中设置testChunks就会发送get请求到后端进行校验。需要后端有校验逻辑。

校验规则:

  1. 后端根据文件名(可不用)+md5去查找本地或者数据库有没有该文件上传记录,有则已经上传过,返回已上传过标识skipUploader;
  2. 如果上传过部分分片,则返回uploadedChunks数组,组件会自动跳过这些已经上传过的分片;
  3. 如果以上都没有上传会重新开始上传;

前端发送get请求后,会通过options的参数中checkChunkUploadedByResponse方法进行拦截:

  1. 如果skipUpload为true则返回true,不再进行后续操作;
  2. 如果uploadedChunks则返回后续的分片,跳过已上传的分片;
  3. 如果没有上传过不会进入此方法;

2:如何实现秒传、断点续传、最新上传

后端get请求中校验是否有上传过文件,上传过则秒传,上传过部分分片则断点续传,否则重新上传。

前端通过checkChunkUploadedByResponse获取和设置后端返回的结果

3、MD5计算

  1. 首先设置不自动上传:autoStart=false
  2. 然后通过FileReader读取文件,及对文件进行切片File.prototype.slice
  3. 根据文件大小和分片大小,切片后循环读取文件,并计算MD5
  4. 通过spark-md5计算分片的md5

三.代码实现 

<template><uploader :options="options" :fileStatusText="fileStatusText" class="uploader-example" ref="uploaderRef":auto-start="false&
http://www.lryc.cn/news/121358.html

相关文章:

  • 自适应变异麻雀搜索算法及其Matlab实现
  • ETL技术入门之ETLCloud初认识
  • uniapp项目如何运行在微信小程序模拟器上
  • 数据挖掘全流程解析
  • 详细介绍如何对音乐信息进行检索和音频节拍跟踪
  • Java课题笔记~ HTTP协议(请求和响应)
  • 在x86下运行的Ubuntu系统上部署QEMU用于模拟RISC-V硬件环境
  • 网络爬虫选择代理IP的标准
  • RxJava 复刻简版之三,map 多次中转数据
  • 06 Word2Vec模型(第一个专门做词向量的模型,CBOW和Skip-gram)
  • Axure RP9小白安装教程
  • 腾讯云CVM服务器2核2g1m带宽支持多少人访问?
  • 8.12学习笔记
  • 计算机体系中的不同的缓存存储层级说明
  • HCIP 链路聚合技术
  • 网页爬虫中常用代理IP主要有哪几种?
  • Js小数运算精度缺失的解决方法
  • 25 | 葡萄酒质量数据分析
  • 在 Windows 上安装 OpenCV – C++ / Python
  • 前后端交互开发模式yapi使用
  • Ajax同源策略及跨域问题
  • JavaScript:解构赋值【对象】
  • 微服务与Nacos概述-2
  • 解决MySQL与Redis缓存一致性的问题
  • 王道机组难题分析
  • 数学建模(一)前继概念
  • C# 随机法求解线性规划问题 蒙特卡洛
  • nginx文档合集
  • 什么是BFC?它有什么作用?如何创建BFC?
  • svn文章四:版本控制策略 - 穿越时光机:SVN版本控制进阶技巧