微信小程序持久化存储图片文件 实现网络图片本地缓存

#关于项目中需要减轻服务器资源消耗问题,前端简单对图片做缓存处理# 

export function getEncryption(key) {
  const encrypt = new Md5();
  encrypt.appendAsciiStr(key);
  return encrypt.end();
}

export function setCacheImages(href) {
  return new Promise((resolve, reject) => {
    // #ifdef MP-WEIXIN
    try {
      const realUrl = href.split("?")[0];

      const fileIdentifier = getEncryption(realUrl);

      const fileManager = uni.getFileSystemManager();

      // 读取缓存的所有文件
      const dir = fileManager.readdirSync(wx.env.USER_DATA_PATH);

      // 检查是否存在缓存文件
      const cachedFile = dir.find((item) => item.indexOf(fileIdentifier) > -1);

      if (cachedFile) {
        // 返回对应文件路径
        resolve(`${wx.env.USER_DATA_PATH}/${cachedFile}`);
      } else {
        downloadCanchFile(href, fileIdentifier)
          .then((response) => {
            resolve(response);
          })
          .catch(() => {
            // 下载失败可能是网络问题,返回原始图片链接
            rej
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值