如何保存http网络图片到本地

如何保存http网络图片到本地

HarmonyOS
21h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

使用http模块下的request方法下载图片,并在该方法的回调函数中保存到相册先申请以下权限:ohos.permission.INTERNETohos.permission.WRITE_IMAGEVIDEO 其中ohos.permission.WRITE_IMAGEVIDEO需要向用户申请授权,可参考文档 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/request-user-authorization-V5 保存网络图片代码如下:

import { http } from '@kit.NetworkKit'
import { BusinessError } from '@kit.BasicServicesKit';
import ResponseCode from '@ohos.net.http';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import fs from '@ohos.file.fs';

@Entry
@Component
struct Index {
  loadImageWithUrl(url: string) {
    // 使用request下载图片并在回调函数中保存图片到相册
    http.createHttp().request(url,
      {
        method:http.RequestMethod.GET,
        connectTimeout:60000,
        readTimeout:60000
      },
      async (error: BusinessError, data: http.HttpResponse) => {
        if (error) {
          console.error(`http reqeust failed with. Code: ${error.code}, message: ${error.message}`);
        } else {
          if (ResponseCode.ResponseCode.OK === data.responseCode) {
            let imageBuffer: ArrayBuffer = data.result as ArrayBuffer;
            try {
              // 获取相册路径
              const context = getContext(this);
              let helper = photoAccessHelper.getPhotoAccessHelper(context);
              let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg')
              let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
              // 写入文件
              await fs.write(file.fd, imageBuffer);
              // 关闭文件
              await fs.close(file.fd);
            } catch (error) {
              console.error("error is "+ JSON.stringify(error))
            }
          } else {
            console.error("error occurred when image downloaded!")
          }
        }
      })
  }
  ......
}
分享
微博
QQ
微信
回复
19h前
相关问题
如何保存网络图片相册
770浏览 • 1回复 待解决
怎么实现保存网络图片相册功能?
415浏览 • 1回复 待解决
HarmonyOS 保存网络图片,图库更新
357浏览 • 1回复 待解决
HarmonyOS 保存图片本地相册
26浏览 • 1回复 待解决
如何保存本地图片相册中
1133浏览 • 1回复 待解决
获取网络图片保存到相册
1534浏览 • 1回复 待解决
HarmonyOS 保存网络图片到手机图库
66浏览 • 1回复 待解决
HarmonyOS 保存网络图片至图库问题
281浏览 • 1回复 待解决
HarmonyOS 网络图片加载控件
4浏览 • 0回复 待解决
HarmonyOS 请求网络图片
428浏览 • 1回复 待解决
如何获取网络图片的尺寸?
490浏览 • 1回复 待解决
Image组件如何加载网络图片
2693浏览 • 1回复 待解决
HarmonyOS H5页面保存图片本地相册
37浏览 • 1回复 待解决