第一步:先对整个文件进行md5,根据文件内容生成hash;
第二步:给每一个分块命名:${hash}_${i}.${suffix}
,这样每一块都带有整个文件的hash,并将所有分块进行收集为数组partList
中;后端根据第一个分块获取hash创建临时文件夹存储;
第三步:根据每个分块准备请求集合收集到数组requestList
中,用于发送(并行、串行),每个请求上传成功后从分块数组中移除当前分块;
第四步:串行方式:可以通过标识在循环发送时判断是否中止,再点继续的时候重新走循环上传。且此时已经发过的分块之前就被移除了;并行:需要使用ajax.abort()强制中止;
第五步:发送合并请求,将文件hash传给后端,后端根据hash找到临时目录进行合并;