HarmonyOS 鸿蒙Next网络文件下载到公共目录
HarmonyOS 鸿蒙Next网络文件下载到公共目录 有网络文件下载到公共目录相关demo吗?
3 回复
import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import buffer from '@ohos.buffer';
import { picker } from '@kit.CoreFileKit';
@Entry
@Component
struct Index{
build(){
Button().onClick(()=>{
let context = getContext(this) as common.UIAbilityContext;
let filePath = context.filesDir+"/test.xlsx";
let url ="XXXX.xlsx"
try {
request.downloadFile(context, {
url : url,
filePath: filePath
}).then((data:request.DownloadTask)=>{
let downloadTask: request.DownloadTask = data;
downloadTask.on('complete',()=>{
console.info('download complete');
let file = fs.openSync(filePath,fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let arrayBuffer = new ArrayBuffer(4096000);
let readLen = fs.readSync(file.fd, arrayBuffer);
let buf = buffer.from(arrayBuffer,0,readLen);
console.info(`content of File: ${buf.toString()}`);
let writeLen = fs.writeSync(file.fd, arrayBuffer);
fs.closeSync(file);
const documentSaveOptions = new picker.DocumentSaveOptions(); // 创建文件管理器选项实例
// documentSaveOptions.newFileNames = ["1.xlsx"]; // 保存文件名(可选)
// documentSaveOptions.fileSuffixChoices = ['xlsx']; // 保存文件类型(可选)
let uris: Array<string> = [];
const documentViewPicker = new picker.DocumentViewPicker(); // 创建文件选择器实例
documentViewPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => {
uris = documentSaveResult;
console.info('documentViewPicker.save to file succeed and uris are:'+ uris);
let uri = uris[0];
let file2 = fs.openSync(uri,fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let writeLen2 = fs.writeSync(file2.fd, arrayBuffer);
fs.closeSync(file2);
}).catch((err: BusinessError) => {
console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
})
})
let failCallback = () =>{
console.info('Download task fail.');
};
downloadTask.on('fail', failCallback);
}).catch((err:BusinessError)=>{
console.error(`downLoadFileTask failed, code is ${err.code}, message is ${err.message}`);
});
} catch (error){
console.error(`downLoadFileTask failed, code is ${error.code}, message is ${error.message}`);
}
})
}
}
更多关于HarmonyOS 鸿蒙Next网络文件下载到公共目录的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你这个也不是公共目录吧?
针对帖子标题“HarmonyOS 鸿蒙Next网络文件下载到公共目录”的问题,以下是一个简洁且专业的回答:
在HarmonyOS鸿蒙系统中,若要将网络文件下载到公共目录,可以通过以下步骤实现:
首先,确保你的应用已获得必要的权限,包括网络访问权限和文件读写权限。这通常需要在应用的manifest文件中进行声明。
接下来,使用HarmonyOS提供的网络请求API(如HTTP或HTTPS请求)来下载文件。在下载过程中,你可以指定一个保存路径,该路径应指向公共目录。
公共目录的具体路径可能因设备和系统版本而异,但通常可以通过系统API获取。例如,你可以使用HarmonyOS的文件管理API来查询公共目录的路径。
在下载完成后,你可以通过文件管理器或应用内的文件浏览功能来访问公共目录中的下载文件。
请注意,由于HarmonyOS系统的不断更新和变化,上述步骤可能需要根据具体的系统版本和API进行调整。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。在这里,你可以获得更详细的技术支持和解决方案。