HarmonyOS鸿蒙Next中网络文件保存到本地

HarmonyOS鸿蒙Next中网络文件保存到本地 网络文件保存到手机,保存成功后地址可以打印出来(类似:file:///data/storage/el2/base/haps/entry/files/xxx/saved/xxx.xlsx),但是在手机找不到应用文件夹,怎么验证是否保存到本地了

2 回复

在HarmonyOS鸿蒙Next中,将网络文件保存到本地可以通过使用ohos.net.http模块中的Http类和ohos.file.fs模块中的File类来实现。首先,使用Http类发起网络请求获取文件数据,然后通过File类将数据写入本地文件系统。

具体步骤如下:

  1. 使用Http类的createHttp()方法创建一个Http实例。
  2. 调用Http实例的request()方法,传入文件URL和其他必要的参数,获取文件数据。
  3. 使用File类的open()方法打开或创建一个本地文件。
  4. 调用File实例的write()方法,将网络文件数据写入本地文件。
  5. 最后,使用File实例的close()方法关闭文件。

示例代码:

import http from '@ohos.net.http';
import file from '@ohos.file.fs';

let httpRequest = http.createHttp();
let url = 'https://example.com/file.txt';
let filePath = 'path/to/local/file.txt';

httpRequest.request(url, (err, data) => {
    if (err) {
        console.error('Failed to download file:', err);
        return;
    }
    let fileHandle = file.open(filePath, file.OpenMode.CREATE | file.OpenMode.WRITE);
    file.write(fileHandle, data.result);
    file.close(fileHandle);
});

以上代码展示了如何在HarmonyOS鸿蒙Next中将网络文件保存到本地。

更多关于HarmonyOS鸿蒙Next中网络文件保存到本地的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,可以通过以下步骤将网络文件保存到本地:

  1. 网络请求:使用@ohos.net.http模块发起HTTP请求,获取文件数据。
  2. 文件写入:使用@ohos.fileio模块将获取的数据写入本地文件。

示例代码:

import http from '@ohos.net.http';
import fileIO from '@ohos.fileio';

async function saveFileFromUrl(url: string, localFilePath: string) {
    let httpRequest = http.createHttp();
    let response = await httpRequest.request(url);
    let file = fileIO.openSync(localFilePath, 0o100 | 0o2); // 创建或覆盖文件
    fileIO.writeSync(file.fd, response.result);
    fileIO.closeSync(file.fd);
}

// 调用示例
saveFileFromUrl('https://example.com/file.txt', '/data/storage/el2/base/files/file.txt');

确保应用已获取ohos.permission.INTERNETohos.permission.WRITE_MEDIA权限。

回到顶部