# nie-rss **Repository Path**: niejunhao/nie-rss ## Basic Information - **Project Name**: nie-rss - **Description**: Vue3.x 大文件上传组件 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 0 - **Created**: 2023-09-22 - **Last Updated**: 2023-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 大文件上传组件, 分片上传, 秒传 ## README # `NIE-RSS` 文件上传组件 ## 简介 - 拖拽选择 - 单文件上传 - 大文件分片上传 - 秒传 - 文件夹 - 并发上传限制 - 拖拽排序 - 列表视图 - 宫格视图 ## 仓库 [码云Gitee](https://gitee.com/niejunhao/nie-rss.git "码云仓库") ## 基础 1. ### 安装 ``` js // 安装组件 npm install nie-rss ``` 2. ### 导入 ``` js import NieRss from 'nie-rss'; import 'nie-rss/dist/style.css'; createApp(App).use(NieRss).mount('#app') ``` 3. ### 使用 ``` html ``` ## 配置 - **url** 文件上传地址 完整文件和分片上传文件都会使用这个地址
- **chunkUpload** 是否开启分片上传 默认:false
- **initAtSplitFile** 添加文件时就切分分片 如果为false,则会在文件上传开始之前切分分片 默认:false
- **chunkSize** 文件分片大小 单位:字节 默认:2MB
- **singleFileParallelRequest** 单个文件是否开启并发上传 当为false时,同一时间只会上传文件的一个分片 默认:true
- **parallelFileUploadNumber** 同时上传的文件数量 默认:3
- **autoUpload** 添加文件之后立即执行上传 默认:false
- **parallelRequestNumber** 当前组件实例并发请求数量 singleFileParallelRequest 为 true 时有效 默认:10
- **timeout** 请求超时时间 单位:毫秒 默认:60000
- **retryRequestNumber** 重试请求次数 默认:6
- **fileAddBefore** 文件添加之前钩子 参数:rssFile: 即将添加的文件信息 返回一个Promise对象,如果返回reject将不会添加文件 ``` js ```
## 方法 - **upload(fileId)** 上传单个文件 参数: - fileId 文件ID 返回值:void
- **uploadAll** 上传所有文件 返回值:void
- **pause(fileId)** 暂停单个文件上传 参数: - fileId 文件ID 返回值:void
- **pauseAll()** 暂停所有文件上传 返回值:void
- **getFile(fileId)** 获取单个文件 参数: - fileId 文件ID 返回值:RssFile | null | undefined
- **getAllFiles()** 获取所有文件 返回值:RssFile[]
- **addFile(file)** 添加文件 参数: - file 需要添加的文件 JS File对象 返回值:void
- **addFiles(files)** 批量添加文件 参数: - files 要添加的文件列表 JS File对象数组 返回值:void
- **removeFile(fileId)** 删除文件 参数: - fileId 文件ID 返回值:void
- **clearFiles()** 清空文件 返回值:void
- **on(event, callback)** 注册监听事件 参数: - event 事件名称 - callback:事件回调函数 返回值:void ``` js ```
- **off(event, callback)** 移除监听事件 注意这里的callback必须是注册时的callback函数 参数: - event 事件名称 - callback:事件回调函数 返回值:void ``` js ```
- **once(event, callback)** 监听事件 和 on 注册作用相同,不同点在于once只会执行一次,执行一次后会自动移除监听 参数: - event 事件名称 - callback:事件回调函数 返回值:void
- **emit(event, ...args)** 触发事件 一般情况下,组件中的事件不需要我们触发,在组件内部会自动触发, 提供这个方法是为了方便我们注册和监听自定义的事件 参数: - event 事件名称 - args 发送给回调函数的参数 返回值:void
``` js ```
## 事件
- **fileAdded**: (rssFile) => void; 文件添加成功事件 参数: - rssFile 添加成功的文件信息
- **filesAdded**: (rssFiles) => void; 批量添加文件成功事件 参数: - rssFiles 批量添加成功的文件信息列表
- **fileRemove**: (rssFileId) => void; 文件删除事件 参数: - rssFileId 文件ID
- **fileEmptyed**: () => void; 文件清空事件
- **progress**: (rssFile, progress) => void; 文件上传进度更新事件 参数: - rssFile 正在上传的文件 - progress 进度
- **complete**: (rssFile) => void; 文件上传完成事件 参数: - rssFile 上传完成的文件信息
- **statusChange**: (rssFile, rssFileStatus) => void; 文件状态变更事件 参数: - rssFile 文件信息 - rssFileStatus 变更后的状态
- **failed**: (rssFile: RssFile) => void; 文件上传失败 参数: - rssFile 文件信息
- **anyEvent**: (event, ...args) => void; 任意事件 任何一个事件触发的同时也会触发这个事件 参数: - event 事件名称 - args 参数
## RssFile > ### 属性 | 属性名称 | 属性类型 | 属性描述 | | :------------ | :------------- | :------------------------------------------------------- | | id | string | 文件ID,当前Rss实例中唯一ID | | filename | number | 文件名称 | | fileSize | string | 文件大小 单位:字节 | | source | NativeFile | 源文件信息,JS中的File\Blob对象 | | extension | string | 文件扩展名,例如,filename = abc.png, 则 extension = png | | identity | string | 文件指纹,文件唯一标识 | | status | RssFileStatus | 文件状态 | | progress | number | 文件上传进度 | | sourceUpdates | NativeFile[] | 源文件更新记录,比如多次文件编辑 | | chunkFiles | RssChunkFile[] | 文件分片信息度 | | response | any | 文件上传完成后服务器返回的信息 | | | > ### 方法
- **upload()** 上传当前文件 返回值:void
- **pause()** 暂停当前文件上传 返回值:void
- **setProgress(progress)** 设置当前文件上传进度, 会触发进度更新事件 参数: - progress 进度百分比 1-100 返回值:void
- **setStatus(rssFileStatus)** 修改文件状态,会触发文件状态变更事件 参数: - rssFileStatus 文件上传状态值 状态值说明: | 状态值 | 状态值描述 | | :-------- | :----------------------------------------------------------- | | INIT | 文件初始化成功,在添加文件后还未操作文件时 | | AWAIT | 当文件上传数量超出最大上传数量时,文件在文件上传池中等待上传 | | UPLOADING | 文件正在上传中 | | PAUSE | 文件上传被暂停时 | | COMPLETE | 文件上传成功 | | FAILED | 文件上传失败 | 返回值:void
- **getRssOptions()** 获取整个Rss实例配置 返回值:Rss实例配置信息