跳到主要内容
版本:4.x

UploadTask

一个可以监听上传进度变化事件,以及取消上传任务的对象

支持情况:

参考文档

方法

abort

中断上传任务

支持情况:

参考文档

() => void

onProgressUpdate

监听上传进度变化事件

支持情况:

参考文档

(callback: OnProgressUpdateCallback) => void
参数类型说明
callbackOnProgressUpdateCallback上传进度变化事件的回调函数

offProgressUpdate

取消监听上传进度变化事件

支持情况:

参考文档

(callback: OnProgressUpdateCallback) => void
参数类型说明
callbackOnProgressUpdateCallback上传进度变化事件的回调函数

onHeadersReceived

监听 HTTP Response Header 事件。会比请求完成事件更早

支持情况:

参考文档

(callback: OnHeadersReceivedCallback) => void
参数类型说明
callbackOnHeadersReceivedCallbackHTTP Response Header 事件的回调函数

offHeadersReceived

取消监听 HTTP Response Header 事件

支持情况:

参考文档

(callback: OnHeadersReceivedCallback) => void
参数类型说明
callbackOnHeadersReceivedCallbackHTTP Response Header 事件的回调函数

参数

OnHeadersReceivedCallback

HTTP Response Header 事件的回调函数

(result: OnHeadersReceivedCallbackResult) => void
参数类型
resultOnHeadersReceivedCallbackResult

OnProgressUpdateCallback

上传进度变化事件的回调函数

(result: OnProgressUpdateCallbackResult) => void
参数类型
resultOnProgressUpdateCallbackResult

OnHeadersReceivedCallbackResult

参数类型说明
headerTaroGeneral.IAnyObject开发者服务器返回的 HTTP Response Header

OnProgressUpdateCallbackResult

参数类型说明
progressnumber上传进度百分比
totalBytesExpectedToSendnumber预期需要上传的数据总长度,单位 Bytes
totalBytesSentnumber已经上传的数据长度,单位 Bytes

UploadTaskPromise

示例代码

const uploadTask = Taro.uploadFile({
url: 'http://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData:{
'user': 'test'
},
success (res){
const data = res.data
//do something
}
})

uploadTask.onProgressUpdate((res) => {
console.log('上传进度', res.progress)
console.log('已经上传的数据长度', res.totalBytesSent)
console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
})

uploadTask.abort() // 取消上传任务

API 支持度

API微信小程序百度小程序支付宝小程序抖音小程序H5React NativeHarmonyHarmony hybrid
UploadTask✔️✔️✔️✔️✔️✔️✔️
UploadTask.abort✔️✔️✔️✔️
UploadTask.onProgressUpdate✔️✔️✔️✔️
UploadTask.offProgressUpdate✔️✔️✔️✔️
UploadTask.onHeadersReceived✔️✔️✔️
UploadTask.offHeadersReceived✔️✔️✔️