miniprogram-uploader
v5.3.0-alpha.0
Published
miniprogram upload package
Maintainers
Readme
miniprogram-uploader 
An axios API like
Uploadpackage for MiniProgram小程序上传封装 小程序网络库miniprogram-network 核心库之一
API
methods:
upload<T>(options: UploadOption): Promise<T>;upload<T>(filePath: string, name: string, url?: string, options?): Promise<T>;
options
- [x]
filePath文件路径 required (只能请求时设置for single request) - [x]
name上传文件名 required (只能请求时设置for single request) - [x]
data额外数据 (只能请求时设置for single request) - [x]
cancelToken取消 (只能请求时设置for single request) - [x]
onProgressUpdate下载进度响应 (只能请求时设置for single request) - [x]
onHeadersReceived接收头响应 (只能请求时设置for single request) - [x]
timeout自定义超时时间ms (只能请求时设置for single request) - [x]
url上传地址 - [x]
headers请求头 - [x]
paramsURL参数 - [x]
baseURL根URL - [x]
retry重试次数 - [x]
timestamp是否记录发送和响应时间戳 - [x]
transformSend输入转换函数 - [x]
transformResponse输出转换函数
Global Listeners
- [x]
onSend(before request data send & after request data transformed) - [x]
onResponse(after request response data transformed) - [x]
onRejected(beforecatchof Promise) - [x]
onAbort - [x]
onComplete
Usage
install
npm i miniprogram-uploaderquick start
import {UPLOAD} from 'miniprogram-uploader';
UPLOAD.upload(localPath,'file','https://upload.site/file')
.then(console.log) // 返回数据
.catch(err=>wx.showToast({title:'下载失败'}));直接返回保存位置
import {UPLOAD,transformUploadResponseOkData} from 'miniprogram-uploader';
// 根据状态码,直接返回保存地址
//默认配置全局有效
UPLOAD.Defaults.transformResponse=transformUploadResponseOkData;
//js
UPLOAD.upload(localPath,'file','https://upload.site/file').then(console.log);//打印data string
//TS
UPLOAD.upload<{url:string}>(localPath,'file','https://upload.site/file')
.then(data=>{
console.log(data)//打印数据object {url:'xxx'}
})
//返回完整数据 对当前下载有效
UPLOAD.upload(url:'item/1.jpg',null,{transformResponse:(res,o)=>res})
.then(console.log) //打印 返回的Object {errMsg:'xx',data:"{url:'xxx'}"}CancelToken (abort)
可通过cancel token 方式取消请求
import { UPLOAD, CancelToken } from 'miniprogram-uploader';
// 创建一个 tokensource
const source = CancelToken.source();
UPLOAD.upload({
filePath:localPath,
file:'tempfile',
// 配置 cancelToken
cancelToken: source.token
});
// 需要取消操作时
source.cancel('canceled');