1# 上传下载 2 3>  **说明:** 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.INTERNET。 19 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```