Skip to content

Latest commit

 

History

History

uploader

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

miniprogram-uploader npm version

An axios API like Upload package for MiniProgram

小程序上传封装 小程序网络库miniprogram-network 核心库之一

API

methods:

  • upload<T>(options: UploadOption): Promise<T>;
  • upload<T>(filePath: string, name: string, url?: string, options?): Promise<T>;

options

  • 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 根URL
  • retry 重试次数
  • timestamp 是否记录发送和响应时间戳
  • transformSend 输入转换函数
  • transformResponse 输出转换函数

Global Listeners

  • onSend (before request data send & after request data transformed)
  • onResponse (after request response data transformed)
  • onRejected (before catch of Promise)
  • onAbort
  • onComplete

Usage

install

npm i miniprogram-uploader

quick 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');