0.0.5 • Published 1 year ago

wbb-uploader-ui v0.0.5

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
1 year ago

wbb-uploader-ui

Uploader.File 对象

属性(Properties)

参数说明默认值类型可选值
uploader对Uploader实例的引用——Object
name文件(夹)名称——string
averageSpeed平均上传速度,字节/秒——Number
currentSpeed当前上传速度,字节/秒——Number
paused表示文件(文件夹)是否暂停——Boolean
error指示文件(文件夹)是否遇到错误(文件上传是否出错)——Boolean
isFolder是否是文件夹——Boolean

如果不是文件夹,则还有以下属性:

属性名称说明默认值类型可选值
file原生HTML5 File对象——Object
relativePath文件的相对路径(如果相对路径不存在,则默认为文件名)——string
size文件的字节大小——Number
uniqueIdentifier分配给此文件对象的唯一标识符,该值包含在上传到服务器中以供参考,但也可以在构建上传UI时在CSS类等中使用——string
chunks由 Uploader.Chunk 实例组成数组,分成的块集合,⼀般场景下并不需要关⼼它——Array

前端上传接口参数

参数名称说明默认值
chunkNumber当前块的次序,第一块是1,注意不是从0开始的
totalChunks文件被分成块的总数
chunkSize分块大小,根据totalSize和这个值就可以计算出总共的块数。注意的是最后一块的大小可能会比这个还要大
totalSize文件总大小
identifier请求中包含的文件的唯一标识符
filename文件名称
relativePath选择目录时文件的相对路径(在除Chrome之外的所有浏览器中默认为文件名)
currentChunkSize当前块的大小,实际大小

如果是oss上传,则还有以下属性:

参数名称说明默认值
taskId任务id(来源:初始化接口返回的参数)
ossSlicesIdoss分片上传的唯一标识(来源:初始化接口返回的参数)
minSliceSize当前片大小(来源:初始化接口返回的参数)
fileType文件类型
fileName文件名称
fileMD5当前片的md5值

安装

yarn | npm add wbb-uploader-ui

使用

分片上传-本地组件

文件信息上传到本地服务器

引用

import WbbShardUploader from "wbb-uploader-ui"
import 'wbb-uploader-ui/lib/wbb-uploader-ui.css'

Vue.use(WbbShardUploader)
<wbb-shard-uploader ref="upload"/>

分片上传-oss组件

文件信息上传到oss服务器

引用

import WbbOssShardUploader from "wbb-uploader-ui"
import 'wbb-uploader-ui/lib/wbb-uploader-ui.css'

Vue.use(WbbOssShardUploader)
<wbb-oss-shard-uploader ref="upload"/>

普通上传-本地组件

文件信息上传到本地服务器

引用

import WbbGeneralUploader from "wbb-uploader-ui"
import 'wbb-uploader-ui/lib/wbb-uploader-ui.css'

Vue.use(WbbGeneralUploader)
<wbb-general-uploader ref="upload"/>

普通上传-oss组件

文件信息上传到oss服务器

引用

import WbbOssGeneralUploader from "wbb-uploader-ui"
import 'wbb-uploader-ui/lib/wbb-uploader-ui.css'

Vue.use(WbbOssGeneralUploader)
<wbb-oss-general-uploader ref="upload"/>

打开上传窗口

上传文件: 调用this.$refs.upload.$emit('openUploader')

示例:

this.$refs.upload.$emit('openUploader', {
    params: {
        otherParams: 'home'
    },
    options: {
        target: 'http://xx.xx.xx.xx',
        accept: ['.mp3', '.flac', '.mp4', '.flv'],
        fileSize: 1073741824
    }
})

上传文件夹: 调用this.$refs.upload.$emit('openUploaderFolder')

示例:

this.$refs.upload.$emit('openUploaderFolder', {
    params: {
        otherParams: "home"
    },
    options: {
        target: '/api/file/upload',
        accept: ['.mp3', '.flac', '.mp4', '.flv'],
        fileSize: 1073741824
    }
})

属性(Attributes)

参数名称类型说明可选值默认值
paramsObject传给服务端的额外参数——
optionsObject上传选项,目前支持一下几种——具体配置如下:

options对象的配置参数

参数名称类型说明可选值默认值
targetString设置上传地址——
acceptArray设置上传类型——
fileSizeNumber文件大小(与服务端的大小保持一致即可),单位是字节,设置后只能传小于当前文件大小的文件,否则会给予提示——(1073741824)1G
fileParameterNameString上传文件时文件的参数名——file
testChunksBoolean测试每个块向服务器发出GET请求(对应GET类型同名的target URL),以查看它是否已经存在。如果在服务器端实现,即使在浏览器崩溃甚至计算机重新启动后,也可以恢复上传。——true
checkChunkUploadedByResponseFunction可选的函数⽤于根据 XHR 响应内容检测每个块是否上传成功了,传⼊的参数是:Uploader.Chunk 实例、请求响应信息。checkChunkUploadedByResponse函数直接return true的话,不再调用上传接口
headersObject额外的请求头。若是函数,则会传入Uploader.File实例、当前块Uploader.Chunk对象以及是否是测试模式——{}
oss_targetString设置oss分片上传地址,此参数只对oss分片上传有效——

注意:

1、在oss分片上传、普通上传中没有testChunks属性、checkChunkUploadedByResponse函数;

2、在oss分片上传中params参数无效

回调事件

事件(Events)

事件名称说明回调参数
fileAdded文件选择后的回调file
filesAdded多文件选择后的回调files, fileList, newArr
fileSuccess文件上传成功的回调。第⼀个参数 rootFile 就是成功上传的⽂件所属的根 Uploader.File 对象,它应该包含或者等于成功上传⽂件;第⼆个参数 file 就是当前成功的 Uploader.File 对象本⾝;第三个参数就是 message 就是服务端响应内容,永远都是字符串;第四个参数 chunk 就是 Uploader.Chunk 实例,它就是该⽂件的最后⼀个块实例,可以通过访问xhr获得响应状态对象chunk.xhr.statusrootFile, file, response, chunk
// 文件选择后的回调
this.$refs.upload.$on("fileAdded", (file) => {
   console.log("文件已选择", file);
});

// 多文件选择后的回调
this.$refs.upload.$on("filesAdded", (files, fileList, newArr) => {
   console.log('多文件上传', files, fileList, newArr)
})

// 文件上传成功的回调
this.$refs.upload.$on("fileSuccess", (rootFile, file, response, chunk) => {
   console.log("文件上传成功", rootFile, file, response, chunk);
});
0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago