
# 上传文件
单次上传的文件，限制大小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时，必填。回调函数，持续回调                |
   
注意：filePath 只能是用户选择的文件或图片，如通过chooseImage返回的图片路径。
#### 返回结果
无。
#### 请求示例
- ES6示例
```
const filePath = '/downloads/xxxx.asr';
const _appId = 'com.xxx.xxx';
const _appName = 'xxxxxx';
const _userId = 'xxx';
 
HWH5.uploadFile({
  serverUrl: 'http://example.com/uploadFile', // 示例地址，非真实服务
  filePath,
  name: 'file',
  headers: {
    'X-HIC-info': `{"appId":${_appId},"appName":${_appName},"userId":${_userId}}`
  },
  formData: { capKey: 'xxxxxx.xxxxxx', audioFormat: 'pcm16k16bit' },
  progress: 1,
  onProgress: (_data) => {
    console.log(_data, '~~~data');
  }
}).then(data => {
  console.log('服务端返回数据：', data);
}).catch(error => {
  console.log('HWH5.uploadFile上传异常', error);
});
```
- ES5示例
```
var filePath = '/downloads/xxxx.asr';
var _appId = 'com.xxx.xxx';
var _appName = 'xxxxxx';
var _userId = 'xxx';
 
HWH5.uploadFile({
  serverUrl: 'http://example.com/uploadFile', // 示例地址，非真实服务
  filePath: filePath,
  name: 'file',
  headers: {
    'X-HIC-info': 'appId:' + _appId + ',appName:' + _appName + ',userId:' + _userId
  },
  formData: { capKey: 'xxxxxx.xxxxxx', audioFormat: 'pcm16k16bit' },
  progress: 1,
  onProgress: function (_data) {
    console.log(_data, '~~~data');
  }
}).then(function (data) {
  console.log('服务端返回数据：', data);
}).catch(function (error) {
  console.log('HWH5.uploadFile上传异常', error);
});
```
服务端接受(Spring boot)示例：
```
@SuppressWarnings("unchecked")
@RequestMapping(value = "/xxx/xxxxxx", method = RequestMethod.POST)
public @ResponseBody Map shortOutlineAsr(
                                       @RequestParam(name = "file") MultipartFile voiceFile,
                                       @RequestParam(name = "capKey") String capKey,
                                       @RequestParam(name = "audioFormat") String audioFormat,
                                       @RequestHeader(name = HisHeader.X_HIC_INFO) String hisInfo)
                                       {
                                        // 方法体
                                       }
)
```
**HWH5.uploadFileOperation**
[支持版本\>=10.0.5](https://open.welink.huaweicloud.com/docs/#/990hh0/whokyc/fa5obu)
扫码体验：
![](https://support.huaweicloud.com/devg-welink/figure/zh-cn_image_0000001485536249.png "点击放大")
