浏览 SDKs · React Native
SDKsReact Native

上传文件

使用 OpenIM React Native SDK 独立上传文件并获取远端资源 URL。

复制

uploadFile() 用于独立上传本地文件,可用于头像、群头像、资料附件或其他业务文件。

const { url } = await OpenIMSDK.uploadFile({
  name: 'avatar.png',
  contentType: 'image/png',
  uuid: 'avatar-upload-20260827',
  cause: 'user-avatar',
  filepath,
});

参数说明

参数类型是否必填说明
namestring上传使用的文件名。
contentTypestring文件的 MIME 类型。
uuidstring本次上传的业务标识。
causestring业务约定的上传原因。
filepathstring应用可读取的本地文件路径。

调用完成后返回远端资源地址 url。可将该地址用于更新头像、保存业务附件,或创建 URL 类型的媒体消息后再发送。

监听上传状态

上传过程中触发 UploadOnProgress 事件,回调参数包含当前已上传量 current 和文件总量 size。上传完成时触发 UploadComplete 事件,回调参数的 data 包含 fileSizestreamSizestorageSize

function handleUploadProgress({ current, size }) {
  // ...
}

function handleUploadComplete({ data }) {
  // ...
}

// 设置监听
OpenIMSDK.on(OpenIMEvent.UploadOnProgress, handleUploadProgress);
OpenIMSDK.on(OpenIMEvent.UploadComplete, handleUploadComplete);

// 取消监听
OpenIMSDK.off(OpenIMEvent.UploadOnProgress, handleUploadProgress);
OpenIMSDK.off(OpenIMEvent.UploadComplete, handleUploadComplete);

组件销毁、退出登录或切换账号时,应取消监听。