HarmonyOS 鸿蒙Next 如何上传文件并监听上传进度

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何上传文件并监听上传进度

我的app 中有一个需求, 需要用户选中文件之后将选中的文件上传到服务器.

请问 HarmonyOS NEXT 中有没有提供相关的 API 可以上传文件? 并根据上传的进度发送通知给显示在窗口? 这个进度监听是在主线程上面回调的吗?

2 回复

使用request.uploadFile方法上传

import { BusinessError } from '[@kit](/user/kit).BasicServicesKit';

let uploadTask: request.UploadTask;
let uploadConfig: request.UploadConfig = {
 url: 'http://www.example.com', // 需要手动将 url 替换为真实服务器的 HTTP 协议地址
 header: { 'Accept': '*/*' },
 method: "POST",
 files: [{ filename: "test", name: "test", uri: "internal://cache/test.jpg", type: "jpg" }],
 data: [{ name: "name123", value: "123" }],
};
try {
 request.uploadFile(getContext(), uploadConfig).then((data: request.UploadTask) => {
   uploadTask = data;
 }).catch((err: BusinessError) => {
   console.error(`Failed to request the upload. Code: ${err.code}, message: ${err.message}`);
 });
} catch (err) {
 console.error(`Failed to request the upload. err: ${JSON.stringify(err)}`);
}

不是。arkts会挂起当前异步任务,等异步任务满足条件后再唤醒执行,主线程可以处理其他任务。

在HarmonyOS鸿蒙Next系统中,上传文件并监听上传进度可以通过以下步骤实现:

  1. 文件上传:使用request.uploadFile方法上传文件。该方法允许你指定要上传的文件路径、目标URL以及其他请求参数。
  2. 获取uploadTask对象request.uploadFile方法会返回一个uploadTask对象,用于管理上传任务。
  3. 监听上传进度:通过uploadTask.on('progress', callback)监听上传进度。在callback函数中,你可以获取到上传的进度信息,如已上传的数据量、总数据量等,从而计算出上传的百分比。
  4. 处理上传结果:除了监听进度,你还可以监听uploadTask的其他事件,如complete(上传完成)、failed(上传失败)等,以处理上传结果。

通过以上步骤,你可以在HarmonyOS鸿蒙Next系统中实现文件上传并监听上传进度。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部