HarmonyOS 鸿蒙Next有支持下载远端word和excel或者pdf格式的文件 并保存在公共目录的API吗

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

HarmonyOS 鸿蒙Next有支持下载远端word和excel或者pdf格式的文件 并保存在公共目录的API吗 鸿蒙有支持下载远端Word和Excel或者PDF格式的文件,并保存在公共目录的API吗?

2 回复

需要先下载到沙箱目录然后再保存到文件管理器,可参考以下demo。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/save-user-file-V13#保存文档类文件

import common from '@ohos.app.ability.common';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';
import picker from '@ohos.file.picker';
import fs from '@ohos.file.fs';

// 获取应用文件路径
let context = getContext(this) as common.UIAbilityContext;
let filesDir = context.filesDir;

@Entry
@Component
export struct Index1 {
  @State message: string = 'Hello World';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Button('下载')
          .onClick(async () => {
            try {
              console.log('downloadTask1 filesDir 00sg00izg3.jpg');
              //下载文件
              request.downloadFile(context, {
                url: 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F1108%2Fea454272j00s3rxox001tc000sg00izg.jpg&thumbnail=660x2147483647&quality=80&type=jpg',
                filePath: filesDir + '/00sg00izg3.jpg'
              }).then((downloadTask: request.DownloadTask) => {
                //开启回调
                downloadTask.on('complete', () => {
                  console.info('downloadTask1 complete');
                })
              }).catch((err: BusinessError) => {
                console.error("error:", err.message);
              });
            } catch (error) {
              let err: BusinessError = error as BusinessError;
              console.error(err.message);
            }
          })
          .width('100%')
        Button('保存')
          .onClick(async () => {
            try {
              let uris: String = "";
              try {
                const photoSaveOptions = new picker.PhotoSaveOptions(); // 创建文件管理器保存选项实例
                photoSaveOptions.newFileNames = ["PhotoViewPicker01.png"]; // 保存文件名(可选),方括号里的文件名自定义,每次不能重复,设备里已有这个文件的话,名字就需要改个不一样的,不然接口会报错
                const photoViewPicker = new picker.PhotoViewPicker();
                try {
                  let photoSaveResult = await photoViewPicker.save(photoSaveOptions);
                  if (photoSaveResult != undefined) {
                    uris = photoSaveResult[0];
                    console.info('photoViewPicker.save to file succeed and uris are:' + uris);
                  }
                } catch (error) {
                  let err: BusinessError = error as BusinessError;
                  console.error(`[picker] Invoke photoViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
                }
              } catch (error) {
                let err: BusinessError = error as BusinessError;
                console.info("[picker] photoViewPickerSave error = " + JSON.stringify(err));
              }
              try{
                let path = getContext().filesDir+"/00sg00izg3.jpg" //需要保存的图片的路径
                console.info("1111:::" + path);
                let file = fs.openSync(path)
                let file2 = fs.openSync(uris+"",fs.OpenMode.READ_WRITE)
                fs.copyFileSync(file.fd,file2.fd)
                fs.closeSync(file)
                fs.closeSync(file2)
              }catch (error) {
                let err: BusinessError = error as BusinessError;
                console.error(`[picker] Invoke photoViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
              }
            } catch (error) {
              let err: BusinessError = error as BusinessError;
              console.error(err.message);
            }
          })
      }
    }
  }
}

更多关于HarmonyOS 鸿蒙Next有支持下载远端word和excel或者pdf格式的文件 并保存在公共目录的API吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next支持下载远端word、excel或pdf格式文件并保存在公共目录的API

HarmonyOS 鸿蒙Next系统确实提供了相关的API来支持下载远端文件并将其保存在设备的公共目录中。具体而言,你可以通过鸿蒙系统提供的网络请求API(如HTTP或HTTPS请求)来下载远端的word、excel或pdf文件。下载完成后,你可以利用文件系统的API将这些文件保存到指定的公共目录。

在鸿蒙系统中,公共目录通常指的是设备存储中用户可访问的共享区域,例如“Downloads”文件夹。你可以通过鸿蒙的文件管理API来定位这个目录,并将下载的文件移动或复制到该目录下。

需要注意的是,进行文件下载和保存操作时,你的应用需要具备相应的权限。例如,网络访问权限、读写外部存储权限等。这些权限需要在应用的manifest文件中声明,并在运行时向用户请求。

此外,鸿蒙系统还提供了丰富的API来处理不同类型的文件,包括打开、编辑和预览word、excel和pdf文件等。你可以根据具体需求选择合适的API来实现相应的功能。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部