在开发中,如果上传的文件过大,可以考虑分片上传,分片就是说将文件拆分来进行上传,将各个文件的切片传递给后台,然后后台再进行合并。这里切片可以理解为字符串的截取,那这里文件的话就是切分字节,一个道理
上传的时候,可能会需要一个文件的唯一 标识,在上传文件的时候也要将文件的唯一标识(文件的MD5加密文件的字符串,每个文件的唯一标识)传递给后端,后端会通过该标识返回给我们告诉我们这个文件是否已经上传过,没有这个文件就需要我们全部上传,存在了,前端就不需要再上传,这个文件上传了一部分,需要把剩余的上传
这个文件的MD5唯一标识呢,也是通过spark-md5来获取,具体步骤 :
安装
npm i spark-md5
or
pnpm add spark-md5
按需引入 ,并封装方法
可以单独建个js文件,向外暴露出去
method.js
import SparkMD5 from 'spark-md5'
// 获取文件的唯一MD5标识码
export function getFileMd5(file) {
return new Promise((resolve, reject) => {
const fileReader = new FileReader()
const spark = new SparkMD5.ArrayBuffer()
fileReader.readAsArrayBuffer(file)
file