JS上传文件中的断点续传

切片之后的文件,如何实现断点续传
还是说只能重新上传这个切片后的文件?
有什么方案可以实现续传

阅读 1.5k
2 个回答
var self = this;
            var blockSize = 1024 * 1024; //每块的大小
            //计算文件切片总数
            var totalPieces = Math.ceil(file.size / blockSize);
            var promiseList = [];
            let uuid = Toolkits.generateUUID();
            for (let skip = 0; skip < totalPieces; skip++) {
                (function(i) {
                    var formData = new FormData(); //初始化一个FormData对象
                    var nextSize = Math.min((i + 1) * blockSize, file.size); //读取到结束位置
                    var fileData = file.slice(i * blockSize, nextSize); //截取 部分文件 从哪-哪
                    formData.append("file", fileData); //将 部分文件 塞入FormData
                    formData.append("fileName", file.name); //保存文件名字
                    formData.append("chunk", i); //当前编号
                    formData.append("chunks", totalPieces); //文件总数
                    var promiseSkip = new Promise((resolve, reject) => {
                        console.log(
                            `fileName=${formData.get("fileName")}----
                            chunk=${formData.get("chunk")}----
                            chunks=${formData.get("chunks")}----
                        );
                        $.ajax({
                            url:uploadurl,
                            type: "POST",
                            data: formData,
                            processData: false, // 告诉jQuery不要去处理发送的数据
                            contentType: false, // 告诉jQuery不要去设置Content-Type请求头
                            success: function(responseText) {
                                resolve(responseText);
                            }
                        });
                    });
                    promiseList.push(promiseSkip);
                })(skip);

缓存失败的uuid,实现断点续传

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

断点续传必然是需要服务器端配合的,否则不可能实现。
客户端最多实现按固定尺寸切片,后切片上传。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题