HarmonyOS 鸿蒙Next request.downloadFile 下载压缩包问题

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

HarmonyOS 鸿蒙Next request.downloadFile 下载压缩包问题

request.downloadFile 下载带鉴权的压缩包一直失败呢  
这个是下载地址  也没有报错

但是如果把这个地址换成图片是可以正常下载的  
2 回复

可以尝试下将url和authorization分离:

// 方式一:request.downloadFile
// pages/xxx.ets
// 将网络资源文件下载到应用文件目录并读取一段内容
import { common } from '@kit.AbilityKit';
import fs from '@ohos.file.fs';
import { BusinessError, request } from '@kit.BasicServicesKit';
import { buffer } from '@kit.ArkTS';

// 获取应用文件路径
let context = this as common.UIAbilityContext;
let filesDir = context.filesDir;
let headers = new Map<string, string>();
headers.set('authorization', 'XXX');

try {
  request.downloadFile(context, {
    url: 'https://xxxx/xxxx.zip',
    header: headers,
    filePath: filesDir + '/xxxx.zip'
  }).then((downloadTask: request.DownloadTask) => {
    downloadTask.on('complete', () => {
      console.info('download complete');
      let file = fs.openSync(filesDir + '/xxxx.txt', fs.OpenMode.READ_WRITE);
      let arrayBuffer = new ArrayBuffer(1024);
      let readLen = fs.readSync(file.fd, arrayBuffer);
      let buf = buffer.from(arrayBuffer, 0, readLen);
      console.info(`The content of file: ${buf.toString()}`);
      fs.closeSync(file);
    })
  }).catch((err: BusinessError) => {
    console.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`);
  });
} catch (error) {
  let err: BusinessError = error as BusinessError;
  console.error(`Invoke downloadFile failed, code is ${err.code}, message is ${err.message}`);
}

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-file-upload-download-V5

更多关于HarmonyOS 鸿蒙Next request.downloadFile 下载压缩包问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS(鸿蒙)系统中Next request.downloadFile方法下载压缩包时可能遇到的问题,以下是一些直接且专业的回答:

  1. 下载失败或无响应

    • 检查网络连接是否稳定,确保设备已连接到互联网。
    • 确认下载链接是否有效,尝试在浏览器中直接访问该链接看是否能正常下载。
    • 检查存储空间是否充足,不足时清理部分空间再尝试下载。
  2. 下载文件损坏

    • 验证下载文件的完整性,可通过比较文件大小或MD5校验码等方式。
    • 若文件在传输过程中被篡改或损坏,尝试重新下载。
  3. 解压失败

    • 确认下载的压缩包格式是否被鸿蒙系统支持(如ZIP、RAR等)。
    • 使用系统自带的解压工具或第三方解压应用尝试解压。
    • 检查压缩包是否在下载过程中被损坏,导致解压失败。
  4. 权限问题

    • 确认应用是否已获得存储权限,未获得时需在设置中手动授权。
    • 检查是否有其他应用或系统策略阻止下载或解压操作。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。在此页面,您可以找到专业的客服团队,他们将为您提供进一步的帮助和解决方案。

回到顶部