An axios API like
Upload
package for MiniProgram小程序上传封装 小程序网络库miniprogram-network 核心库之一
upload<T>(options: UploadOption): Promise<T>
;upload<T>(filePath: string, name: string, url?: string, options?): Promise<T>
;filePath
文件路径 required (只能请求时设置for single request)name
上传文件名 required (只能请求时设置for single request)data
额外数据 (只能请求时设置for single request)cancelToken
取消 (只能请求时设置for single request)onProgressUpdate
下载进度响应 (只能请求时设置for single request)onHeadersReceived
接收头响应 (只能请求时设置for single request)timeout
自定义超时时间ms (只能请求时设置for single request)url
上传地址headers
请求头params
URL参数baseURL
根URLretry
重试次数timestamp
是否记录发送和响应时间戳transformSend
输入转换函数transformResponse
输出转换函数onSend
(before request data send & after request data transformed)onResponse
(after request response data transformed)onRejected
(before catch
of Promise)onAbort
onComplete
npm i miniprogram-uploader
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'}"}
可通过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');