# 上传下载 request

# 导入模块

import request from '@system.request';

# request.upload(OBJECT)

上传文件。

  • 参数
参数名 类型 必填 说明
url string 是 资源地址。
header Object 否 请求头。
method string 否 请求方法:POST、PUT。缺省POST。
files Array<File> 是 待上传文件列表。请使用multipart/form-data进行提交。
data Array<RequestData> 否 请求的表单数据。
success Function 否 成功回调。
fail Function 否 失败回调。
complete Function 否 执行结束后的回调。

表2 File

参数名 类型 必填 说明
filename string 否 multipart 提交时,请求头中的文件名。
name string 否 multipart 提交时,表单项目的名称,缺省为file。
uri string 是 文件的本地存储路径(路径使用方式请参考存储目录定义)。
type string 否 文件的内容类型,默认根据文件名或路径的后缀获取。

表3 RequestData

参数名 类型 必填 说明
name string 是 表示form 元素的名称。
value string 是 表示form 元素的值。
  • success返回值:
参数名 类型 说明
code number 服务器返回的状态码。
data string 服务器返回的内容。根据返回头内容中的type决定该值的类型。
headers Object 服务器返回的返回头内容。
  • 示例
request.upload({
  url: 'http://www.example.com',
  files: [
    {
      uri: 'internal://xxx/xxx/test',
      name: 'file1',
      filename: 'test.png'
    }
  ],
  data: [
    {
      name: 'param1',
      value: 'value1'
    }
  ],
  success: function(data) {
    console.log('handling success')
  },
  fail: function(data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

# request.download(OBJECT)

下载文件。

  • 参数
参数名 类型 必填 说明
url string 是 资源地址。
requestId string 否 自定义请求id,可用于中断下载。
header Object 否 请求头。
description string 否 资源地址的下载描述,默认为文件名称。
filename string 否 本次下载文件的名称及路径。默认从本次请求或资源地址中获取。
success Function 否 成功回调。
fail Function 否 失败回调。
complete Function 否 执行结束后的回调。
  • success返回值
参数名 类型 说明
token string 表示下载的 token,获取下载状态的依据。
  • 示例
request.download({
  url: 'http://www.example.com',
  filename: "internal://cache/imgs/1.png",
  success: function(data) {
    console.log(`handling success${data.token}`)
  },
  fail: function(data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

# request.onDownloadComplete(OBJECT)

监听下载任务。

  • 参数
参数名 类型 必填 说明
token String 是 download 接口返回的 token
success Function 否 成功返回的回调函数
fail Function 否 失败的回调函数
complete Function 否 结束的回调函数(调用成功、失败都会执行)
  • success返回值
参数名 类型 说明
uri string 表示下载文件的uri。
  • fail返回错误代码
错误码 说明
1000 下载失败
1001 下载任务不存在
  • 示例
request.onDownloadComplete({
  token: '123',
  success: function(data) {
    console.log(`handling success${data.uri}`)
  },
  fail: function(data, code) {
    console.log(`handling fail, code = ${code}`)
  }
})

完整的下载示例为

request.download({
  url: 'http://www.example.com', // 要下载的资源路径
  filename: "internal://cache/imgs/1.png", // 下载后文件存在路径,这里是放在cache下的imgs目录下,文件名为1.png
  success: data => {
      console.log(`download success`)
      request.onDownloadComplete({
          token: data.token,
          success: () => {
              console.log(`onDownloadComplete success`)
          },
          fail: (data, code) => {
              console.log(`onDownloadComplete fail code = ${code}`)
          }
      })
  },
  fail: (data, code) => {
      console.log(`download fail, code = ${code}`)
  }
})

# request.cancel(OBJECT)

取消下载任务。

  • 参数
参数名 类型 必填 说明
requestId String 是 download 接口传入的请求id