
# 支持取消上传文件
单次上传的文件，限制大小20M
#### 请求参数
| **参数**     | **类型**   | **必填** | **说明**                                   |
|:---|:---|:---|:---|
| serverUrl  | String   | 是      | 服务器地址，绝对路径                               |
| formData   | Object   | 是      | 自定义body中的其他数据，json结构。注意：无数据时，需传空值 {}     |
| filePath   | String   | 是      | 文件存放到本地的地址，包含文件名称及后缀（/download/test.png） |
| name       | String   | 否      | 开发者在服务器端通过该key可以获取到文件二进制内容               |
| headers    | Object   | 否      | 自定义的header信息                             |
| progress   | Number   | 否      | 是否返回上传进度。1：返回，0：不返回。默认为 0                |
| onProgress | Function | 否      | 当progress为1时，必填。回调函数，持续回调                |
| onSuccess  | Function | 否      | 上传成功后回调函数                                |
| onError    | Function | 否      | 上传失败或是异常的回调函数                            |
   
注意：filePath 只能是用户选择的文件或图片，如通过chooseImage返回的图片路径。
#### 返回说明
| **参数** | **类型**   | **说明** |
|:---|:---|:---|
| abort  | Function | 取消上传函数 |
   
- ES6示例
```
const filePath = '/downloads/xxxx.asr';
const _appId = 'com.huawei.xxx';
const _appName = 'xxxxxx';
const _userId = 'xxx';
 
const uploadTask = await HWH5.uploadFileOperation({
  serverUrl: '/mcloud/mag/ProxyForUpload/xxx/xxx/xxxxxx', // 示例地址，非真实服务
  filePath,
  name: 'file',
  headers: {
    'X-HIC-info': `{"appId":${_appId},"appName":${_appName},"userId":${_userId}}`
  },
  formData: {},
  progress: 1,
  onProgress: _data => console.log('进度', _data),
  onSuccess: res => console.log('--------- success', res),
  onError: err => console.log('--------- error', err)
});
 
uploadTask.abort(); //取消上传
```
- ES5示例
```
var filePath = '/downloads/xxxx.asr';
var _appId = 'com.huawei.xxx';
var _appName = 'xxxxxx';
var _userId = 'xxx';
 
HWH5.uploadFileOperation({
  serverUrl: '/mcloud/mag/ProxyForUpload/xxx/xxx/xxxxxx', // 示例地址，非真实服务
  filePath: filePath,
  name: 'file',
  headers: {
    'X-HIC-info': 'appId:' + _appId + ',appName:' + _appName + ',userId:' + _userId
  },
  formData: {},
  progress: 1,
  onProgress: function (_data) {
    console.log('进度', _data);
  },
  onSuccess: function (res) {
    console.log('--------- success', res);
  },
  onError: function (err) {
    console.log('--------- error', err);
  }
}).then(function (uploadTask) {
   uploadTask.abort(); // 取消上传
})
```
**HWH5.downloadFile**
[支持版本\>=10.0.2](https://open.welink.huaweicloud.com/docs/#/990hh0/whokyc/fa5obu)
扫码体验：
![](https://support.huaweicloud.com/devg-welink/figure/zh-cn_image_0000001435180064.png "点击放大")
