# uploadfile 文件上传
方法
- upload 新建上传任务
- enumerate 枚举上传任务
- clear 清除上传任务
- startAll 开始所有上传任务
- startUpload 开始上传任务(快速使用)
对象
- UploadTask 上传任务对象
- UploadState 上传任务状态
# upload
创建上传任务
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
options | Object | 是 | 上传任务详细参数,详见下表 |
- options参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 上传url。 |
success | Function | 否 | 上传成功时回调。 |
error | Function | 否 | 上传失败时回调。 |
filePath | String | 是 | 上传文件的路径。 |
fileAttr | Object | 否 | 文件标识、文件名称、文件类型等 |
formdata | Object | 否 | 上传时参数。 |
addDataSuccess | Function | 否 | 添加数据成功回调。 |
addFileSuccess | Function | 否 | 添加文件成功回调。 |
blocksize | Number | 否 | 上传任务每次上传的文件块大小(暂不支持)。单位为Byte(字节),默认值为102400,若设置值小于等于0则表示不分块上传。仅在支持断点续传的服务有效 |
chunkSize | Number | 否 | 分块上传的大小。单位为Kb,设置值小于等于0则不分块上传,默认为不分块上传。注意:分块上传需要服务器支持,如果服务器不支持则会上传失败 |
method | String | 否 | 网络请求类型,仅支持http协议的“POST”请求。 |
header | Object | 否 | 上传任务HTTP报文头 |
priority | Number | 否 | 上传任务的优先级(暂不支持),数值越大优先级越高,默认优先级值为0 |
timeout | Number | 否 | 上传任务超时时间(暂不支持),单位为s(秒),默认值为120s。 超时时间为服务器响应请求的时间(不是上传任务完成的总时间),如果设置为0则表示永远不超时。 |
retry | Number | 否 | 上传任务重试次数(暂不支持),默认为重试3次 |
retryInterval | Number | 否 | 上传任务重试间隔时间(暂不支持),单位为s(秒),默认值为30s |
- upload 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
task | UploadTask | 上传任务 |
- 示例代码
// 创建上传任务
let task = foxsdk.uploadfile.upload({
url: 'http://inflex.oicp.net/mock-example/file/upload', // 上传url
method: 'POST', // 上传时请求方法
success: function (task) {
console.log('##上传任务成功完成回调##\n' + JSON.stringify(task));
}, // 上传成功回调
error: function (task) {
console.log('##上传任务失败完成回调##\n' + JSON.stringify(task));
}, // 上传失败回调
filePath: '_downloads/202001091600.txt', // 上传文件的路径
fileAttr: {
key: 'key202001091600',
name: '202001091600.txt'
}, // 文件标识、文件名称、文件类型等
formdata: { 'keyName': 'keyValue' }, // 上传时参数
addDataSuccess: function (retObj) {
console.log('##添加上传文件回调##\n' + JSON.stringify(retObj));
}, // 添加数据回调
addFileSuccess: function (retObj) {
console.log('##添加上传数据回调##\n' + JSON.stringify(retObj));
}, // 添加文件回调
});
task.start();
# enumerate
枚举上传任务
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
state | Number | 是 | 上传任务的状态,如果未指定state值,则清除所有未完成的上传任务。 |
successCb | Function | 是 | 枚举上传任务成功回调 |
- successCb 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
tasks | Array[UploadTask] | 上传任务 |
- 示例代码
let state = foxsdk.uploadfile.UploadState.All;
foxsdk.uploadfile.enumerate(state, tasks => {
console.log('##上传任务枚举回调(任务数:' + tasks.length + ')##\n' + JSON.stringify(tasks));
});
# clear
清除上传任务
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
state | Number | 是 | 上传任务的状态,如果未指定state值,则清除所有未完成的上传任务。 |
- 示例代码
let state = foxsdk.uploadfile.UploadState.All;
foxsdk.uploadfile.clear(state);
# startAll
开始所有上传任务
开始所有处于为开始调度或暂停状态的上传任务。 若上传任务数超过可并发处理的总数,超出的任务处于调度状态(等待上传),当有任务完成时根据调度状态任务的优先级选择任务开始上传。
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | × |
- 示例代码
foxsdk.uploadfile.startAll();
# UploadTask
- 属性
identify
:上传任务标识url
:上传文件的地址state
:上传任务的状态options
: 上传任务的参数responseText
:上传任务完成后服务器返回的数据uploadedSize
: 已完成上传文件的大小totalSize
: 上传任务文件的总大小
- 方法
- start 开始上传任务
- pause 暂停上传任务
- resume 恢复上传任务
- abort 取消上传任务
- stateChanged 监听上传任务
# start
开始上传任务
- 示例代码 请先创建上传任务,创建上传任务
// let task = foxsdk.uploadfile.upload(options);
task.start();
# pause
暂停上传任务
- 示例代码 请先创建上传任务,创建上传任务
// let task = foxsdk.uploadfile.upload(options);
task.pause();
# resume
开始上传任务
- 示例代码 请先创建上传任务,创建上传任务
// let task = foxsdk.uploadfile.upload(options);
task.resume();
# abort
取消上传任务
- 示例代码 请先创建上传任务,创建上传任务
// let task = foxsdk.uploadfile.upload(options);
task.abort();
# stateChanged
监听上传任务状态变化
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
stateChangedCb | Function | 是 | 监听上传任务状态变化回调 |
- stateChangedCb 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
task | UploadTask | 上传任务 |
- 示例代码 请先创建上传任务,创建上传任务
// let task = foxsdk.uploadfile.upload(options);
this.task[id].stateChanged(task => {
console.log('##上传任务监听回调##\n' + JSON.stringify(task));
});
# UploadState
上传任务状态,如:foxsdk.uploadfile.UploadState.All
- 常量
/**
* 上传状态
*/
const UploadState = {
/**
* 上传任务未开始
*/
Undefined: -1001,
/**
* 枚举任务状态
*/
All: -1,
/**
* 上传任务开始调度
*/
Start: 0,
/**
* 上传任务开始请求,发送请求到服务器并等待服务器的响应
*/
StartRequest: 1,
/**
* 上传任务请求已经接收,服务器返回响应,准备传输数据内容
*/
ReadReceived: 2,
/**
* 上传任务接收数据,可多次触发此状态。
*/
Received: 3,
/**
* 上传任务已完成(成功)
*/
Finished: 4,
/**
* 上传任务已暂停
*/
Pause: 5,
/**
* 上传任务发生异常
*/
Error: 6
};
# startUpload
开始上传任务(快速使用)
- 支持平台
Android | IOS | HarmonyOS |
---|---|---|
√ | √ | √ |
- 参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 上传文件URL地址。 |
options | Object | 是 | 上传任务详细参数,详见下表 |
- options参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | String | 是 | 上传文件保存路径。 |
method | String | 否 | 网络请求类型,支持http协议的“GET”、“POST”,默认为“GET”请求。 |
header | Object | 否 | 上传任务HTTP报文头 |
data | Object | 否 | 上传任务HTTP携带参数 |
- download 返回参数说明
参数 | 类型 | 说明 |
---|---|---|
status | Number | 上传任务结果(1则表示正在上传中,0则表示任务完成) |
message | String | message信息 |
payload | Object | 上传任务 |
-- status=1时payload参数说明 --
参数 | 类型 | 说明 |
---|---|---|
received | Number | 上传进度 |
total | Number | 上传文件大小 |
-- status=0时payload参数说明 --
参数 | 类型 | 说明 |
---|---|---|
state | Number | -1001表示上传已完成 |
- 示例代码
var data = { filename: uploadFileName }
foxsdk.uploader.startUpload('http://210.12.198.141:18080/yump-msr/api/sys/file/upload',data, ret => {
});