An axios API like
Uploadpackage 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)onAbortonCompletenpm 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');