mirror of
https://gitee.com/wot-design-uni/wot-design-uni.git
synced 2025-12-07 01:28:30 +08:00
81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
# useUpload
|
|
|
|
用于处理文件上传和选择相关的逻辑。
|
|
|
|
## 基础用法
|
|
|
|
```ts
|
|
import { useUpload } from '@/uni_modules/wot-design-uni'
|
|
|
|
const { startUpload, abort, chooseFile, UPLOAD_STATUS } = useUpload()
|
|
|
|
// 选择文件
|
|
const files = await chooseFile({
|
|
accept: 'image',
|
|
multiple: true,
|
|
maxCount: 9
|
|
})
|
|
|
|
// 开始上传
|
|
const file = {
|
|
url: 'file://temp/image.png',
|
|
status: UPLOAD_STATUS.PENDING,
|
|
percent: 0
|
|
}
|
|
|
|
startUpload(file, {
|
|
action: 'https://upload-url',
|
|
onSuccess(res) {
|
|
console.log('上传成功', res)
|
|
},
|
|
onError(err) {
|
|
console.log('上传失败', err)
|
|
},
|
|
onProgress(progress) {
|
|
console.log('上传进度', progress)
|
|
}
|
|
})
|
|
|
|
// 中断上传
|
|
abort()
|
|
```
|
|
|
|
## API
|
|
|
|
### 方法
|
|
|
|
| 方法名 | 说明 | 参数 | 返回值 | 最低版本 |
|
|
|-------|------|------|--------|---------|
|
|
| startUpload | 开始上传文件 | file: UploadFileItem, options: UseUploadOptions | UniApp.UploadTask \| void | - |
|
|
| abort | 中断上传 | task?: UniApp.UploadTask | void | - |
|
|
| chooseFile | 选择文件 | options: ChooseFileOption | Promise<ChooseFile[]> | - |
|
|
|
|
### UseUploadOptions
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 最低版本 |
|
|
|-----|------|------|--------|---------|
|
|
| action | 上传地址 | string | - | - |
|
|
| header | 请求头 | Record<string, any> | {} | - |
|
|
| name | 文件对应的 key | string | 'file' | - |
|
|
| formData | 其它表单数据 | Record<string, any> | {} | - |
|
|
| fileType | 文件类型 | 'image' \| 'video' \| 'audio' | 'image' | - |
|
|
| statusCode | 成功状态码 | number | 200 | - |
|
|
| uploadMethod | 自定义上传方法 | UploadMethod | - | - |
|
|
| onSuccess | 上传成功回调 | Function | - | - |
|
|
| onError | 上传失败回调 | Function | - | - |
|
|
| onProgress | 上传进度回调 | Function | - | - |
|
|
|
|
### ChooseFileOption
|
|
|
|
| 参数 | 说明 | 类型 | 默认值 | 最低版本 |
|
|
|-----|------|------|--------|---------|
|
|
| multiple | 是否支持多选文件 | boolean | false | - |
|
|
| sizeType | 所选的图片的尺寸 | Array | ['original', 'compressed'] | - |
|
|
| sourceType | 选择文件的来源 | Array | ['album', 'camera'] | - |
|
|
| maxCount | 最大可选数量 | number | 9 | - |
|
|
| accept | 接受的文件类型 | 'image' \| 'video' \| 'media' \| 'file' \| 'all' | 'image' | - |
|
|
| compressed | 是否压缩视频 | boolean | true | - |
|
|
| maxDuration | 视频最大时长(秒) | number | 60 | - |
|
|
| camera | 摄像头朝向 | 'back' \| 'front' | 'back' | - |
|
|
| extension | 根据文件拓展名过滤(H5支持全部类型过滤,微信小程序支持all和file时过滤,其余平台不支持) | string[] | - |
|