request.uploadFile的上传很慢的感觉,有没有解决办法,或者其他的 HarmonyOS 鸿蒙Next

request.uploadFile的上传很慢的感觉,有没有解决办法,或者其他的 HarmonyOS 鸿蒙Next 上传一个6MB的照片,花了30多秒才返回数据,当前网络没有问题,又测试800kb的照片,花了4s左右,使用的photopicker获取的照片,之前的都很快就执行了。

const resData = await request.uploadFile(context, {
  url: 'https://***/file.s', // url 地址
  method: "POST", // 请求方法
  header: {
    // 和接口文档的要求的格式对象
    contentType: 'multipart/form-data',
  },
  files, // 文件信息
  data: [] // 额外提交的数据,不能省略
})

// 监听上传进度
let uploadedSize = 0;
let totalSize = fs.statSync(copyFilePath).size;

// 每隔 2 秒打印一次上传进度
const progressInterval = setInterval(() => {
  console.info(`当前上传进度: ${uploadedSize}/${totalSize} (${((uploadedSize / totalSize) * 100).toFixed(2)}%)`);
}, 2000); // 2 秒间隔

resData.on('progress', (currentUploadedSize: number, currentTotalSize: number) => {
  uploadedSize = currentUploadedSize;
  totalSize = currentTotalSize;
});

resData.on('complete', () => {
  clearInterval(progressInterval); // 上传完成后清除定时器
  console.info('上传完成');
  console.log('上传完成后的参数 ' + JSON.stringify(resData))
});

resData.on('headerReceive', (res) => {
  clearInterval(progressInterval);
  console.log('打印返回的数据 ' + JSON.stringify(res))
});

并且每隔两秒打印的进度中,已上传的一直为0,但是两个图片上传的时间有不一样,deepseek说可能是官方的这个监听不支持在中途监听,也不清楚,有没有更快速,或者好的解决办法,会的不是很多,望大佬帮助。


更多关于request.uploadFile的上传很慢的感觉,有没有解决办法,或者其他的 HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
  1. 可以检查服务器的处理能力,确保它能够高效地处理传入的文件上传请求。

  2. 可以考虑使用axios进行文件的上传下载,示例:

ohos_axios: 本库基于Axios 原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。

  1. 或者,采用另一套接口尝试一下,

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-request-V5#requestagentcreate10

更多关于request.uploadFile的上传很慢的感觉,有没有解决办法,或者其他的 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中,request.uploadFile的上传速度可能受到多种因素影响,如网络状况、服务器性能、文件大小等。以下是一些可能影响上传速度的因素及解决方法:

  1. 网络状况:确保设备连接的Wi-Fi或移动网络稳定,信号强度良好。可以尝试切换到更稳定的网络环境。

  2. 服务器性能:检查服务器是否能够处理大量并发请求,优化服务器配置或增加带宽。

  3. 文件大小:大文件上传速度较慢,可以考虑分片上传,将大文件分割成多个小块逐步上传。

  4. 并发上传:使用并发上传机制,同时上传多个文件或文件块,提高整体上传速度。

  5. 压缩文件:在上传前对文件进行压缩,减少文件大小,加快上传速度。

  6. 使用CDN:如果文件需要分发给多个用户,使用CDN(内容分发网络)可以加速文件上传和下载。

  7. 优化代码:检查request.uploadFile的实现代码,确保没有不必要的操作或瓶颈,优化上传逻辑。

  8. 鸿蒙Next API:查阅鸿蒙Next的最新API文档,查看是否有新的上传方法或参数可以优化上传速度。

  9. 日志分析:通过分析上传过程中的日志,找出耗时较长的步骤,针对性优化。

以上方法可以根据具体情况进行尝试,以提高request.uploadFile的上传速度。

回到顶部