上传文件
将本地资源上传到开发者服务器
请求参数
| 值 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| url | string | 是 | - | 开发者服务器接口地址 |
| filePath | string | 否 | null | 要上传文件资源的路径, 支持uni.env |
| name | string | 否 | null | 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容 |
| files | Array<UploadFileOptionFiles> | 否 | null | 需要上传的文件列表 |
| header | UTSJSONObject | 否 | null | HTTP 请求 Header, header 中不能设置 Referer |
| formData | UTSJSONObject | 否 | null | HTTP 请求中其他额外的 form data |
| uploadFileTimeout | number | 否 | 120000 | 超时时间,单位 ms |
| closeInterceptor | boolean | 否 | false | 关闭当前请求的拦截器 |
| success | (option: UTSJSONObject) => void | 否 | null | 成功返回的回调函数 |
| fail | (option: UTSJSONObject) => void | 否 | null | 失败的回调函数 |
| complete | (option: UTSJSONObject) => void | 否 | null | 结束的回调函数(调用成功、失败都会执行),成功或者失败都会调用。 |
| uploadTask | (task : UploadTask) => void | 否 | - | UploadTask 的方法 |
UploadFileOptionFiles
| 值 | 类型 | 必备 | 默认值 | 描述 | 兼容性 |
|---|---|---|---|---|---|
| name | string | 否 | file | multipart 提交时,表单的项目名,默认为 file,如果 name 不填或填的值相同,可能导致服务端读取文件时只能读取到一个文件。 | |
| uri | string | 是 | - | 要上传文件资源的路径 | 不支持web |
| file | string | 否 | - | 要上传的文件对象 | 不支持HarmonyOS |
success返回值
| 值 | 类型 | 必备 | 默认值 | 描述 | 兼容性 |
|---|---|---|---|---|---|
| data | string | 是 | - | 开发者服务器返回的数据 | |
| statusCode | number | 是 | - | 开发者服务器返回的 HTTP 状态码 |
fail返回值
| 值 | 类型 | 必备 | 默认值 | 描述 | 兼容性 |
|---|---|---|---|---|---|
| errCode | number | 是 | - | 错误码 | |
| errSubject | string | 是 | - | 统一错误主题(模块)名称 | |
| data | any | 否 | - | 错误信息中包含的数据 | 微信小程序 |
| cause | Error | 否 | - | 源错误信息,可以包含多个错误,详见SourceError | |
| errMsg | string | 是 | - |
errCode合法值
| 值 | 描述 |
|---|---|
| 5 | 接口超时 |
| 1000 | 服务端系统错误 |
| 100001 | json数据解析错误 |
| 100002 | 错误信息json解析失败 |
| 100003 | json解析类型转换失败 |
| 600003 | 网络中断 |
| 600008 | data参数类型不合法 |
| 600009 | URL格式不合法 |
| 602001 | request系统错误 |
uploadFile 请求示例
ts
<script setup>
// 1、引入自定义创建实例
import request from "@/xxxxxx/xxxxxx";
// 2、基础使用
request.uploadFile({
url: "api/xxxxxx/xxxxxx",
name: "file",
filePath: "xxxxxxxxxxxx",
success: (res) => {
console.log(res)
},
fail: (fail) => {
console.log(fail)
},
complete: (e) => {
console.log(e)
}
})
</script>UploadTask 方法
abort(): void
abort 中断上传任务
onProgressUpdate(callback: DownloadFileProgressUpdateCallback): void
onProgressUpdate 监听上传进度变化
| 值 | 类型 | 必备 | 默认值 | 描述 | 兼容性 |
|---|---|---|---|---|---|
| callback | (result: OnProgressUpdateResult) => void | 是 | - | - |
OnProgressUpdateResult属性值
| 值 | 类型 | 必备 | 默认值 | 描述 | 兼容性 |
|---|---|---|---|---|---|
| progress | number | 是 | - | 上传进度百分比 | |
| totalBytesSent | number | 是 | - | 已经上传的数据长度,单位 Bytes | |
| totalBytesExpectedToSend | number | 是 | - | 预期需要上传的数据总长度,单位 Bytes |
UploadTask 示例
ts
<script setup>
// 1、引入自定义创建实例
import request from "@/xxxxxx/xxxxxx";
// 2、基础使用
request.uploadFile({
url: "api/xxxxxx/xxxxxx",
uploadTask: (task : UploadTask) => {
// 方法调用
task.onProgressUpdate((taskRes) => {
console.log('上传进度:', taskRes.progress)
})
},
success: (res) => {
console.log(res)
},
fail: (fail) => {
console.log(fail)
},
complete: (e) => {
console.log(e)
}
})
</script>