HarmonyOS 鸿蒙Next request.downloadFile 下载压缩包问题
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
方法下载压缩包时可能遇到的问题,以下是一些直接且专业的回答:
-
下载失败或无响应:
- 检查网络连接是否稳定,确保设备已连接到互联网。
- 确认下载链接是否有效,尝试在浏览器中直接访问该链接看是否能正常下载。
- 检查存储空间是否充足,不足时清理部分空间再尝试下载。
-
下载文件损坏:
- 验证下载文件的完整性,可通过比较文件大小或MD5校验码等方式。
- 若文件在传输过程中被篡改或损坏,尝试重新下载。
-
解压失败:
- 确认下载的压缩包格式是否被鸿蒙系统支持(如ZIP、RAR等)。
- 使用系统自带的解压工具或第三方解压应用尝试解压。
- 检查压缩包是否在下载过程中被损坏,导致解压失败。
-
权限问题:
- 确认应用是否已获得存储权限,未获得时需在设置中手动授权。
- 检查是否有其他应用或系统策略阻止下载或解压操作。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html 。在此页面,您可以找到专业的客服团队,他们将为您提供进一步的帮助和解决方案。