1、413 request Entity too Large
问题:访问分片接口的时候浏览器返回413
排查:跟后端同学排查发现后段接口能收到请求并且成功
可能出现在两个阶段:
1、node起服务代理的时候
2、中间代理转发的时候设置
client_max_body_size 20m;
2、关于文件夹上传
webkitdirectory ='' 启动文件夹上传
webkitdirectory ='false' 仍然是可以做文件夹上传
如果非文件夹上传直接不加这个属性即可
3、关于文件的分片
/**
* 获取分片信息
*/
getChunkInfo = (file, start, end) => {
// console.log("getChunkInfo getChunkInfo index")
return new Promise((resolve, reject) => {
// console.log("getChunkInfo Promise")
const targetChunk = file.slice(start, end);
const spark = new SparkMD5.ArrayBuffer();
const fileReader = new FileReader();
fileReader.onload = e => {
const chunk = new Blob([e.target.result], {
type: "application/octet-stream"
});
spark.append(e.target.result);
const md5 = spark.end();
// GC
// fileReader = null;
resolve({
chunk,
md5
});
};
fileReader.readAsArrayBuffer(targetChunk);
});
};
https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsArrayBuffer
4、获取md5
/**
* 工具类获取文件md5值
*/
generateFileMd5 = file => {
return SparkMD5.hash(file.name + file.type + file.size);
};