您的位置:

WebUploader分片上传

一、WebUploader分片上传丢失文件

在进行WebUploader分片上传时,有时会遇到文件上传一部分后突然中断或者浏览器崩溃等异常情况,可能导致后续上传的分片丢失,这时需要进行一些处理。

WebUploader提供了一个autoRetry属性,用于设置上传出错时是否自动重试,默认为 false。如果我们将它设置为 true,WebUploader 就会在上传失败后自动重试,以此确保文件上传成功。

var uploader = WebUploader.create({
    // ...
    autoRetry: true
});

此外,WebUploader还提供了一些其他的措施来应对文件上传失败的情况,比如加强异常处理、调整分块大小等。

二、WebUploader上传文件夹

WebUploader默认只支持上传单个文件,但是我们有时候需要上传整个文件夹或者多个文件,怎么办呢?

事实上,WebUploader提供了一个directory属性,用于指定上传文件夹的路径,支持将文件夹中所有文件同时上传。

var uploader = WebUploader.create({
    // ...
    directory: true
});

需要注意的是,因为上传文件夹会涉及到文件夹中的多个文件的同时上传,这可能会拖慢整个上传过程,因此建议在上传大量文件时采用分片上传。

三、WebUploader断点续传

在网络不稳定或文件较大的情况下,WebUploader分片上传可能会出现上传失败的情况。为了避免用户重新上传整个文件,我们需要提供断点续传的功能。

首先,需要在上传前检测文件是否已经存在,以及文件上传进度,以此决定从哪个分片开始上传。

var uploader = WebUploader.create({
    // ...
    chunks: 10,
    chunkSize: 5 * 1024 * 1024
});
// 文件上传前的事件监听
uploader.on('uploadBeforeSend', function (block, data) {
    var file = block.file;
    // 检查文件是否已经上传
    if (file.blocksSent && file.blocksSent[block.chunk]) {
        // 如果文件已经上传,跳过该分片
        uploader.skipFile(file);
    } else {
        // 设置上传分片的起点
        data.startPos = block.chunk * uploader.options.chunkSize;
    }
});
// 文件上传进度的事件监听
uploader.on('uploadProgress', function (file, percentage) {
    // 记录文件上传进度
    file.blocksSent = file.blocksSent || [];
    file.blocksSent[Math.floor(percentage * uploader.options.chunks)] = true;
});

同时,在文件上传成功后,还需要根据文件的标识符保存上传成功的分片,以便后续文件恢复时能够正确地继续上传。

// 文件上传成功后的事件监听
uploader.on('uploadSuccess', function (file, response) {
    var chunks = file.chunks || [];
    chunks.push(response.chunk);
    file.chunks = chunks;
});

通过以上实现,我们就可以实现WebUploader的断点续传功能。

WebUploader分片上传

2023-05-17
详解el-upload上传图片

2023-05-18
关于php跨域shang传文件的信息

2022-11-10
了解Typora PicGo :实现快捷上传和管理笔记中的图

2023-05-21
js上传选择图片功能代码(js上传图片并预览)

本文目录一览: 1、我需要一个js或者jquery能批量上传图片+预览的功能。急~~~急~~~急~~ 2、怎样用js或者jq实现点击这个图片就可以选择上传还有预览图片啊 3、求一段JS或Jquery异

2023-12-08
php实现视频上传,php上传视频文件到数据库

2023-01-08
js可以控制文件上传的速度吗,js 文件上传进度

本文目录一览: 1、如何使用javascript 控制图片的速度 2、浏览器会限制js上传文件大小吗 3、js 大文件分片上传处理如何实现? 4、前端上传文件实时显示进度条和上传速度的工作原理是怎样的

2023-12-08
java方法整理笔记(java总结)

2022-11-08
如何从js文件上传问题(js读取上传的文件)

本文目录一览: 1、如何通过js完成多个文件的上传 2、js 大文件分片上传处理如何实现? 3、js文件上传中遇到的知识点 4、js如何上传文件 5、egg.js 文件上传 如何通过js完成多个文件的

2023-12-08
Java大文件上传解决方案

2023-05-18
java笔记,大学java笔记

2022-11-28
印象笔记记录java学习(Java成长笔记)

2022-11-12
java笔记,尚硅谷java笔记

2022-12-01
java学习笔记(java初学笔记)

2022-11-14
Markdown笔记的全方位介绍

2023-05-18
Cherrytree笔记应用

2023-05-21
最新python学习笔记3,python基础笔记

2022-11-17
怎么抽取网页整理,怎么抽取网页整理数据

2023-01-08
python基础学习整理笔记,Python课堂笔记

2022-11-21
重学java笔记,java笔记总结

2022-11-23