• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 上传下载
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4> - 从API Version 6开始,该接口不再维护,推荐使用新接口[`@ohos.request`](js-apis-request.md)。
5>
6> - 本模块首批接口从API version 4开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7
8
9## 导入模块
10
11
12```
13import request from '@system.request';
14```
15
16## 权限列表
17
18ohos.permission.INTERNET19
20
21## request.upload
22
23upload(Object): void
24
25上传文件。
26
27**参数:**
28
29| 参数名 | 类型 | 必填 | 说明 |
30| -------- | -------- | -------- | -------- |
31| url | string | 是 | 上传服务器地址。 |
32| header | Object | 否 | 请求头。 |
33| method | string | 否 | 请求方法:POST、PUT。缺省POST。 |
34| files | Array<File> | 是 | 待上传文件列表。请使用multipart/form-data进行提交。 |
35| data | Array<RequestData> | 否 | 请求的表单数据。 |
36| success | Function | 否 | 接口调用成功的回调函数。 |
37| fail | Function | 否 | 接口调用失败的回调函数。 |
38| complete | Function | 否 | 接口调用结束的回调函数。 |
39
40**表1** File
41
42| 参数名 | 类型 | 必填 | 说明 |
43| -------- | -------- | -------- | -------- |
44| filename | string | 否 | multipart 提交时,请求头中的文件名。 |
45| name | string | 否 | multipart 提交时,表单项目的名称,缺省为file。 |
46| uri | string | 是 | 文件的本地存储路径。 |
47| type | string | 否 | 文件的内容类型,默认根据文件名或路径的后缀获取。 |
48
49**表2** RequestData
50
51| 参数名 | 类型 | 必填 | 说明 |
52| -------- | -------- | -------- | -------- |
53| name | string | 是 | 表示form 元素的名称。 |
54| value | string | 是 | 表示form 元素的值。 |
55
56success返回值:
57
58| 参数名 | 类型 | 说明 |
59| -------- | -------- | -------- |
60| code | number | 服务器返回的HTTP状态码。 |
61| data | string | 服务器返回的内容。根据返回头内容中的type决定该值的类型。 |
62| headers | Object | 服务器返回的返回头内容。 |
63
64fail返回值中的data中的code为HTTP状态码。
65
66**示例:**
67
68```
69export default {
70  upLoad() {
71    request.upload({
72      url: 'http://www.path.com',
73      files: [
74        {
75           uri: 'internal://cache/path/to/file.txt',
76           name: 'file',
77           filename: 'file.txt',
78        },
79      ],
80      data:[
81        {
82          name: 'name1',
83          value: 'value',
84         },
85       ],
86       success: function(data) {
87         console.log('upload success, code:' + data.code);
88       },
89       fail: function() {
90         console.log('upload fail');
91       },
92     });
93  }
94}
95```
96
97
98## request.download
99
100download(Object): void
101
102下载文件。
103
104**参数:**
105
106| 参数名 | 类型 | 必填 | 说明 |
107| -------- | -------- | -------- | -------- |
108| url | string | 是 | 资源地址。 |
109| header | Object | 否 | 请求头。 |
110| description | string | 否 | 资源地址的下载描述,默认为文件名称。 |
111| filename | string | 否 | 本次下载文件的名称。默认从本次请求或资源地址中获取。 |
112| success | Function | 否 | 接口调用成功的回调函数。 |
113| fail | Function | 否 | 接口调用失败的回调函数。 |
114| complete | Function | 否 | 接口调用结束的回调函数。 |
115
116success返回值:
117
118| 参数名 | 类型 | 说明 |
119| -------- | -------- | -------- |
120| token | string | 表示下载的 token,获取下载状态的依据。 |
121
122fail返回错误代码:
123
124| 错误码 | 说明 |
125| -------- | -------- |
126| 400 | 表示下载任务失败。 |
127
128**示例:**
129
130```
131export default {
132  downLoad() {
133    request.download({
134      url: 'http://www.path.com',
135      success: function(data) {
136        console.log('call success callback success: ' + data.token);
137      },
138      fail: function(data, code) {
139        console.log('handling fail');
140      },
141    });
142  }
143}
144```
145
146
147## request.onDownloadComplete
148
149onDownloadComplete(Object): void
150
151获取下载任务状态。
152
153**参数:**
154
155| 参数名 | 类型 | 必填 | 说明 |
156| -------- | -------- | -------- | -------- |
157| token | string | 是 | download 接口返回的结果 token。 |
158| success | Function | 否 | 接口调用成功的回调函数。 |
159| fail | Function | 否 | 接口调用失败的回调函数。 |
160| complete | Function | 否 | 接口调用结束的回调函数。 |
161
162success返回值:
163
164| 参数名 | 类型 | 说明 |
165| -------- | -------- | -------- |
166| uri | string | 表示下载文件的uri。 |
167
168fail返回错误代码:
169
170| 错误码 | 说明 |
171| -------- | -------- |
172| 400 | 表示下载任务失败。 |
173| 401 | 表示不存在该下载任务。 |
174
175**示例:**
176
177```
178export default {
179  onDownloadComplete() {
180    request.onDownloadComplete({
181      token: 'token-index',
182      success: function(data) {
183        console.log('download success, uri:' + data.uri);
184      },
185      fail: function(data, code) {
186        console.log('download fail');
187      },
188    });
189  }
190}
191```