# 上传下载 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