uploadFile(params: Object)

版本要求:
BaseKit≥2.0.1@ray-js/ray≥0.6.5
支持平台:
iOSAndroid
import { uploadFile } from '@ray-js/ray';

// Promise 调用
try {
  const res = await uploadFile({ ...params });
  console.log(res);
} catch (err) {
  console.log(err.errorMsg);
}

描述

将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data

参数

属性类型必填默认值说明BaseKit 最低版本
urlstring是-开发者服务器地址-
filePathstring是-要上传文件资源的路径 (本地路径)-
namestring是-文件对应的 key,开发者在服务端可以通过这个 key 获取文件的二进制内容-
否-HTTP 请求的 Header,Header 中不能设置 Referer-
否-HTTP 请求中其他额外的 form data-
timeoutnumber否-超时时间,单位为毫秒-
method"POST" | "PUT"否'POST'上传的 HTTP 请求方式,默认 POSTv3.23.0
complete() => void否-接口调用结束的回调函数(调用成功、失败都会执行)-
success(params: Object) => void否-接口调用成功的回调函数-
fail(params: Object) => void否-接口调用失败的回调函数-
success 回调参数
属性类型说明BaseKit 最低版本
datastring开发者服务器返回的数据v3.2.6
statusCodenumber开发者服务器返回的 HTTP 状态码v3.2.6
fail 回调参数
属性类型说明
errorMsgstring错误信息
errorCodestring | number错误码
错误扩展

返回值

类型:UploadTask
UploadTask
属性类型说明
abortfunction中断上传任务
onHeadersReceivedfunction监听 HTTP Response Header 事件。会比请求完成事件更早
offHeadersReceivedfunction取消监听 HTTP Response Header 事件
onProgressUpdatefunction监听上传进度变化事件
offProgressUpdatefunction取消监听上传进度变化事件

合法值

method
值说明BaseKit 最低版本
POSTHTTP POST 请求v3.23.0
PUTHTTP PUT 请求v3.23.0

示例代码

import { downloadFile, uploadFile } from '@ray-js/ray'

// 上传本地文件:先下载一个文件拿到本地路径,再 uploadFile 上传到服务器,返回 UploadTask
downloadFile({
  url: "https://airtake-public-data-1254153901.cos.ap-shanghai.myqcloud.com/ttttestfile/test_image.jpg",
  success: ({ tempFilePath }) => {
    const task = uploadFile({
      url: "https://httpbin.org/post",
      filePath: tempFilePath,
      name: "file",
      success: data => console.log("上传完成,状态码:", data.statusCode),
      fail: error => console.error("上传失败:", JSON.stringify(error)),
    });
    console.log("uploadTask 已创建");
  },
  fail: error => console.error(error),
});