1.0.3 • Published 1 year ago

upload-calc v1.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

upload-calc

上传单文件、多文件、文件夹(图片/图片预览),接收多参数,多种计算回调。

功能

- 拖拽上传
- 点击上传
- 自动上传
  - 上传拦截
- 文件个数
  * 单文件
  * 多文件
- 文件夹
- 过滤
  - 上传个数
  - size
  - 格式
  - 自定义过滤
- 额外参数
- 任务队列状态监听
- 上传进度监听
- 失败队列监听
- 图片预览

安装

npm i upload-calc

使用案例

import upload from 'upload-calc'

const upd = new upload('upd', 'http://xxx/api/file_upload/', {
  data: {
    task_number: 'task_1676530245'
  },
  dragAble: true,
  dragWrapperId: 'dg'
}, {
  failMessageList (list) {
    console.log(list)
  },
  onProgress (progress) {
    console.log(progress)
  },
  beforeDrag () {
    return new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve(0)
      }, 1000);
    })
  }
})
<div id="dg" style="width: 500px; height: 500px; background-color: #999;">
  <form>
    <input
      id="upd"
      hidden
      type="file"
      multiple
      @change="upd.change"
      />
    <el-button @click="upd.click()">选择文件</el-button>
    <el-button @click="upd.syncSubmit()">同步上传</el-button>
  </form>
</div>

注意:调用upd函数必须加(), 如上面upd.click() upd.syncSubmit()

使用说明

new upload(inputId, apiUrl, options{}, callback{})

options{}

参数说明类型默认值可选值
data携带参数Object{}-
limit限制个数Number--
size单文件限制大小 /byteNumber--
autoUpload是否自动上传Booleanfalsetrue
dragAble拖拽上传Booleanfalsetrue
dragWrapperId拽到的容器idString--

callback{}

参数说明类型参数格式
filter自定义过滤函数Function(fileList, originFilterFailList)-
failMessageList过滤不能通过的列表function(failList){file_name: '', message: ''}
onSwitch上传队列任务的开始/结束function(Boolean)true:开始,false:结束
onTotal总量function(num)-
onImgPreview上传文件中有图片,则返回图片给预览function(img)-
onSuccess单个文件上传结束function(response, fileName)(ajax_body, '文件名')
onCount剩余总量function(num)-
onProgress单个文件上传进度function(progressNumber, fileName)(0~100, '文件名')
onAccessLimitNum上传文件个数超过限制,并阻止上传function(Boolean)false
beforeDrag拖拽上传前拦截Function(updCallback)-

Events

事件名说明
clickinput点击事件
changeinput文件变化事件
submit异步提交文件
syncSubmit同步提交文件