教程 框架 组件 接口 工具 其他

上传 uploadtask 1100+

接口声明

{ "name": "system.uploadtask" }

导入模块

import uploadtask from '@system.uploadtask'const uploadtask = require("@system.uploadtask")

接口定义

方法

UploadTask uploadtask.uploadFile(OBJECT)

创建一个上传请求,每次成功调用 uploadtask.uploadFile 将返回本次请求的 UploadTask 实例。

参数:

参数名类型必填说明
urlString开发者服务器接口地址
filePathString要上传文件资源的路径 (本地路径)
nameString文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容
headerObject请求的 header,会将其所有属性设置到请求的 header 部分
formDataObjectHTTP 请求中其他额外的 form data
timeoutNumber超时时间,单位为毫秒
successFunction成功返回的回调函数
failFunction失败的回调函数,可能会因为权限失败
completeFunction结束的回调函数(调用成功、失败都会执行)
success 返回值:
参数名类型说明
statusCodeInteger服务器状态 code
dataString开发者服务器返回的数据
headersObject服务器 response 的所有 header

UploadTask

上传任务对象

方法

UploadTask.abort()

中断上传任务

UploadTask.onProgressUpdate(callback)

监听上传进度变化事件。

参数

参数名类型必填说明
callbackFunction上传进度变化事件的回调函数
callback 返回值
参数名类型说明
progressNumber上传进度百分比
totalBytesSentNumber已经上传的数据长度,单位 Bytes
totalBytesExpectedToSendNumber预期需要上传的数据总长度,单位 Bytes

UploadTask.offProgressUpdate(function callback)

取消监听上传进度变化事件。callback 是可选的,如果不传则取消所有通过 onProgressUpdate 监听的上传进度变化事件。

UploadTask.onHeadersReceived(callback)

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

参数

参数名类型必填说明
callbackfunction开发者服务器返回的 HTTP Response Header,callback 的第一个参数为响应头对象
callback 返回值
参数名类型说明
headerObject开发者服务器返回的 HTTP Response Header

UploadTask.offHeadersReceived(callback)

取消监听 HTTP Response Header 事件,callback 是可选的,如果不传则取消所有通过 onHeadersReceived 监听的 HTTP Response Header 事件。

参数

参数名类型必填说明
callbackFunctionHTTP Response Header 事件的回调函数

示例:

const retUploadTask = uploadtask.uploadFile({
  url: 'http://www.example.com',
  filePath: "internal://mass/download/test.png",
  name: "testImg",
  success: function(res){
    console.log("Upload success.resp = " + JSON.stringify(res))
  },
  fail: function(data, code) {
    console.log(`handling fail, errMsg = ${data)}`)
    console.log(`handling fail, errCode = ${code}`)
  }
})
// 中断请求任务
retUploadTask.abort()

// 监听上传进度事件
retUploadTask.onProgressUpdate(res => {
  console.log(
    `listening upload progress update event, progressUpdate data = ${JSON.stringify(res)}`
  )
})

// 监听响应头事件
retUploadTask.onHeadersReceived(header => {
  console.log(`listening for response header event, header = ${JSON.stringify(header)}`)
})

// 取消监听 HTTP Response Header 事件
retUploadTask.offHeadersReceived()

// 取消监听上传进度事件
retUploadTask.offProgressUpdate()
取消特定的 HTTP Response Header 事件
function cb(header) {
  console.log(
    `listening for response header event 1, header = ${JSON.stringify(header)}`
  )
}

// 此次监听会被取消
retUploadTask.onHeadersReceived(cb)
// event2 监听依然有效,不会被取消
retUploadTask.onHeadersReceived((header) => {
  console.log(
    `listening for response header event 2, header = ${JSON.stringify(header)}`
  )
})

retUploadTask.offHeadersReceived(cb)
取消特定的 上传进度 事件
function cb(res) {
  console.log(
    `listening for upload progress update event 1, progressUpdate data = ${JSON.stringify(
      res
    )}`
  )
}

// 此次监听会被取消
retUploadTask.onProgressUpdate(cb)

// event2 监听依然有效,不会被取消
retUploadTask.onProgressUpdate((res) => {
  console.log(
    `listening for upload progress update event 2, progressUpdate data = ${JSON.stringify(
      res
    )}`
  )
})

retUploadTask.offProgressUpdate(cb)

后台运行限制

无限制。 后台运行详细用法参见后台运行 脚本

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容