# 上传下载 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 |
← 弹窗 prompt 数据请求 fetch →