has.uploadFile(Object object): UploadTask
将本地资源上传到服务器。
从1.0.4版本开始,调用返回UploadTask。
起始版本: 1.0.0
需要权限:在module.json5中声明ohos.permission.INTERNET。
注意事项:在调用此接口前,需要先完成配置服务器域名。
参数:
参数为Object对象,包括以下字段。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| url | string | 是 | 开发者服务器地址。 |
| filePath | string | 是 | 要上传文件资源的路径(本地路径)。 |
| name | string | 是 | 文件对应的key,开发者在服务端可以通过这个key获取文件的二进制内容。 |
| header | Object | 否 | HTTP请求Header,Header中不能设置Referer。 |
| formData | Object | 否 | HTTP请求中其他额外的form data。 |
| success | function | 否 | 接口调用成功的回调函数。 |
| fail | function | 否 | 接口调用失败的回调函数。 |
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行)。 |
success返回值:
| 参数 | 类型 | 描述 |
|---|---|---|
| data | string | 开发者服务器返回的数据。 |
| statusCode | number | 开发者服务器返回的HTTP状态码。 |
返回值:
返回UploadTask对象,可用于监听上传/取消上传进度变化的事件。
错误码信息:
| 错误码 | 错误信息 |
|---|---|
| 102 | Parameter error. Possible causes: 1.url format is invalid. 2.filePath is not user data path. |
| 201 | Permission denied. |
| 401 | Parameter error. Possible causes: 1. Missing mandatory parameters. 2. Incorrect parameter type. 3. Parameter verification failed. |
| 40000301 | uploadFile error. 更多错误信息参考:文件管理错误码。 |
示例:
has.uploadFile({
url: 'https://www.example.com', // 此处仅为样例,请开发者更换为可用接口地址
filePath: 'internal://tmp/xxx.txt',
name: 'data',
success: (res) => {
console.info('uploadFile success', res);
},
fail: (err) => {
console.error('uploadFile fail', err);
},
complete: (res) => {
console.info('uploadFile complete', res);
}
}); UploadTask.abort()
中断上传任务。
起始版本: 1.0.4
错误码信息:
| 错误码 | 错误信息 |
|---|---|
| 40000301 | uploadFile error, error is upload abort. 更多错误信息参考:文件管理错误码。 |
示例:
const uploadTask = has.uploadFile({
url: 'https://www.example.com', // 此处仅为样例,请开发者更换为可用接口地址
filePath: 'internal://tmp/xxx.txt',
name: 'data',
success: (res) => {
console.info('uploadFile success', res);
},
fail: (err) => {
console.error('uploadFile fail', err);
},
complete: (res) => {
console.info('uploadFile complete', res);
}
});
uploadTask.abort(); UploadTask.onProgressUpdate(function callback)
监听上传进度变化事件。
起始版本: 1.0.4
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| callback | function | 是 | 上传进度变化事件的回调函数。 |
callback返回值:
| 参数 | 类型 | 描述 |
|---|---|---|
| progress | number | 上传进度百分比。 |
| totalBytesSent | number | 已经上传的数据长度,单位:Bytes。 |
| totalBytesExpectedToSend | number | 预期需要上传的数据总长度,单位:Bytes。 |
错误码信息:
| 错误码 | 错误信息 |
|---|---|
| 102 | Parameter error. Possible causes: listener should be a function. |
示例:
const uploadTask = has.uploadFile({
url: 'https://www.example.com', // 此处仅为样例,请开发者更换为可用接口地址
filePath: 'internal://tmp/xxx.txt',
name: 'data',
success: (res) => {
console.info('uploadFile success', res);
},
fail: (err) => {
console.error('uploadFile fail', err);
},
complete: (res) => {
console.info('uploadFile complete', res);
}
});
const callback = (res) => {
console.info('onProgressUpdate', res);
};
uploadTask.onProgressUpdate(callback); UploadTask.offProgressUpdate(function callback)
取消监听上传进度变化事件。
起始版本: 1.0.4
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| callback | function | 否 | onProgressUpdate传入的监听函数。不传此参数则移除所有监听函数。 |
错误码信息:
| 错误码 | 错误信息 |
|---|---|
| 102 | Parameter error. Possible causes: listener should be a function. |
示例:
const uploadTask = has.uploadFile({
url: 'https://www.example.com', // 此处仅为样例,请开发者更换为可用接口地址
filePath: 'internal://tmp/xxx.txt',
name: 'data',
success: (res) => {
console.info('uploadFile success', res);
},
fail: (err) => {
console.error('uploadFile fail', err);
},
complete: (res) => {
console.info('uploadFile complete', res);
}
});
const callback = (res) => {
console.info('onProgressUpdate', res);
};
uploadTask.onProgressUpdate(callback);
uploadTask.offProgressUpdate(callback); UploadTask.onHeadersReceived(function callback)
监听HTTP Response Header事件。
起始版本: 1.0.4
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| callback | function | 是 | HTTP Response Header事件的回调函数。 |
callback返回值:
| 参数 | 类型 | 描述 |
|---|---|---|
| header | Object | 开发者服务器返回的HTTP Response Header。 |
错误码信息:
| 错误码 | 错误信息 |
|---|---|
| 102 | Parameter error. Possible causes: listener should be a function. |
示例:
const uploadTask = has.uploadFile({
url: 'https://www.example.com', // 此处仅为样例,请开发者更换为可用接口地址
filePath: 'internal://tmp/xxx.txt',
name: 'data',
success: (res) => {
console.info('uploadFile success', res);
},
fail: (err) => {
console.error('uploadFile fail', err);
}
});
const callback = (res) => {
console.info('onHeadersReceived', res);
};
uploadTask.onHeadersReceived(callback); UploadTask.offHeadersReceived(function callback)
取消监听HTTP Response Header事件。
起始版本: 1.0.4
参数:
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| callback | function | 否 | onHeadersReceived传入的监听函数。不传此参数则移除所有监听函数。 |
错误码信息:
| 错误码 | 错误信息 |
|---|---|
| 102 | Parameter error. Possible causes: listener should be a function. |
示例:
const uploadTask = has.uploadFile({
url: 'https://www.example.com', // 此处仅为样例,请开发者更换为可用接口地址
filePath: 'internal://tmp/xxx.txt',
name: 'data',
success: (res) => {
console.info('uploadFile success', res);
},
fail: (err) => {
console.error('uploadFile fail', err);
}
});
const callback = (res) => {
console.info('onHeadersReceived', res);
};
uploadTask.onHeadersReceived(callback);
uploadTask.offHeadersReceived(callback);