上传更新时间:2025-12-24 18:13:05
基础信息说明
功能概述:将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 Content-Type 为 multipart/form-data,并返回一个可监听上传进度、可中断的上传任务对象 UploadTask。
| 项目 | 说明 |
| 版本要求 | 无 |
| 前提条件 | 无 |
| 使用限制 | 无 |
| 相关教程 | 无 |
方法说明
qg.uploadFile 返回的 UploadTask支持以下方法:
| 方法名 | 签名 | 同步/异步 | 说明 |
| uploadFile | qg.uploadFile(Object object) : UploadTask | 异步 | 将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data |
| onProgressUpdate | UploadTask.onProgressUpdate(function callback) : void | 同步 | 监听上传进度变化事件 |
| offProgressUpdate | UploadTask.offProgressUpdate(function callback) : void | 同步 | 取消监听上传进度变化事件 |
| abort | UploadTask.abort() : void | 同步 | 中断上传任务 |
| onHeadersReceived | UploadTask.onHeadersReceived(function callback) | 同步 | 监听 HTTP Response Header 事件 |
| offHeadersReceived | UploadTask.offHeadersReceived(function callback) | 同步 | 移除 HTTP Response Header 事件的监听函数 |
参数说明
qg.uploadFile(Object object): UploadTask
| 属性名 | 类型 | 默认值(如有) | 必填 | 说明 |
| url | String | - | 是 | 开发者服务器地址 |
| filePath | String | - | 是 | 要上传文件资源的路径 |
| name | String | - | 是 | 文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容 |
| header | Object | - | 否 | HTTP 请求 Header,Header 中不能设置 Referer |
| formData | Object | - | 否 | HTTP 请求中其他额外的 form data |
| success | Function(Object res) | - | 否 | 接口调用成功的回调函数 |
| fail | Function | - | 否 | 接口调用失败的回调函数 |
| complete | Function | - | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success 回调函数的参数 Object res
| 属性 | 类型 | 说明 |
| data | String | 开发者服务器返回的数据 |
| statusCode | Number | 开发者服务器返回的 HTTP 状态码 |
UploadTask.onProgressUpdate(Function callback)
| 属性名 | 类型 | 必填 | 说明 |
| callback | Function | 是 | 上传进度变化事件的回调函数 |
回调函数 callback(Object res)
| 属性名 | 类型 | 说明 |
| progress | Number | 当前上传进度百分比(0 - 100) |
| totalBytesSent | Number | 当前已上传字节数 |
| totalBytesExpectedToSend | Number | 预计需要上传的总字节数 |
UploadTask.offProgressUpdate(Function callback)
| 参数名 | 类型 | 必填 | 说明 |
| callback | Function | 否 | 需要取消的监听回调;需传入原注册时的同一函数引用 |
UploadTask.onHeadersReceived(Function callback)
| 参数名 | 类型 | 必填 | 说明 |
| callback | Function | 是 | 收到响应头时的回调函数 |
回调函数 callback(Object res)
| 属性名 | 类型 | 说明 |
| header | Object | HTTP 响应头字典(原样透传) |
UploadTask.offHeadersReceived(Function callback)
| 参数名 | 类型 | 必填 | 说明 |
| callback | Function | 否 | 需要取消的监听回调;需传入原注册时的同一函数引用 |
返回值说明
qg.uploadFile(Object option): UploadTask:同步返回上传任务对象 UploadTask,不会通过返回值直接给出上传结果,结果需依赖:
- option.success / option.fail / option.complete 回调
- 或 UploadTask 上注册的事件监听(onProgressUpdate / onHeadersReceived)
| 属性名 | 类型 | 说明 |
| UploadTask | Object | 一个可以监听上传进度变化的事件,以及取消上传任务的对象 |
回调结果说明
qg.uploadFile 的参数中定义的success回调函数具有参数 Object res属性如下:
| 属性名 | 类型 | 说明 |
| data | String | 开发者服务器返回的数据 |
| statusCode | Number | 开发者服务器返回的 HTTP 状态码 |
UploadTask.onProgressUpdate的回调函数具有参数 Object res属性如下:
| 属性名 | 类型 | 说明 |
| progress | Number | 上传进度百分比 |
| totalBytesSent | Number | 已经上传的数据长度,单位 Bytes |
| totalBytesExpectedToSend | Number | 预期需要上传的数据总长度,单位 Bytes |
UploadTask.onHeadersReceived的回调函数具有参数 Object header说明如下:
| 属性名 | 类型 | 说明 |
| header | Object | 开发者服务器返回的 HTTP Response Header |
示例代码
const uploadTask = qg.uploadFile({
url: '',
filePath:'',
name:'test',
success: function (res) {
console.log('uploadTask success::', res)
},
fail: function () {
console.log('uploadTask fail')
},
complete: function () {
console.log('uploadTask complete')
}
});
uploadTask.onProgressUpdate(function (res) {
console.log('uploadTask::onProgressUpdate', res)
});
function handleProgressUpdate(res) {
console.log('uploadTask::current progress:', res.progress)
}
uploadTask.onProgressUpdate(handleProgressUpdate);
uploadTask.offProgressUpdate(handleProgressUpdate);
function handleHeadersReceived(res) {
console.log('uploadTask::Response Headers:', res.header);
}
uploadTask.onHeadersReceived(handleHeadersReceived);
uploadTask.offHeadersReceived(handleHeadersReceived);
uploadTask.abort();注意事项
- Header 中禁止设置 Referer 字段,否则请求可能被宿主或服务器拒绝
上一篇:下载
下一篇:数据缓存
文档内容是否有帮助?
有帮助
无帮助