在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁(yè)面

微信小程序之多文件下載的容易封裝

微信小程序之多文件下載的容易封裝

更新時(shí)間:2025-09-27 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一...
微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項(xiàng)門檻非常高的創(chuàng)新,經(jīng)過(guò)將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。
本篇文章主要介紹了微信小程序之多文件下載的簡(jiǎn)單封裝示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

需求

需要生成一個(gè)宣傳的圖片分享到朋友圈,這個(gè)宣傳圖片包含二維碼,包含不同的背景圖片和不同的文字。對(duì)于這種圖片生成,我們考慮過(guò)使用服務(wù)端生成,但是這樣會(huì)比較耗服務(wù)器性能,所以最終決定使用本地生成。

首先小程序有一個(gè)限制,包不能大于2m,而且我們可能多個(gè)背景圖,所以計(jì)劃把背景圖和二維碼圖片放在服務(wù)端,這樣可以減少小程序包的大小,也可以靈活的切換背景圖。

在繪制分享圖的時(shí)候,可以直接使用互聯(lián)網(wǎng)地址,但是遇到了一個(gè)問(wèn)題,有可能不能生成圖片,所以我們需要把這個(gè)圖片文件下載下來(lái)。

下載文件的方法微信有API,但是返回的是文件的臨時(shí)路徑,只在小程序本次啟動(dòng)期間可以正常使用,如需持久保存,需在主動(dòng)調(diào)用 wx.saveFile,才能在小程序下次啟動(dòng)時(shí)訪問(wèn)得到。

所以我們先把下載文件和保存文件封裝

封裝下載并且保存一個(gè)文件

這個(gè)方法比較簡(jiǎn)單

參數(shù):一個(gè)對(duì)象,包含

  1. id 需要下載文件的id,如果不傳默認(rèn)是下載的url,之所以需要id,是因?yàn)槲覀円龆辔募螺d,可以區(qū)分下載的是一個(gè)文件

  2. url 下載文件的網(wǎng)絡(luò)地址(需要微信小程序后臺(tái)配置,具體配置方法請(qǐng)參考微信官方文檔)

  3. success 成功回調(diào) 返回參數(shù)是一個(gè)對(duì)象 包含 id,savedFilePath

  4. fail 失敗回調(diào) ,下載失敗,保存都是都算失敗

/**
 * 下載保存一個(gè)文件
 */
function downloadSaveFile(obj) {
  let that = this;
  let success = obj.success;
  let fail = obj.fail;
  let id = "";
  let url = obj.url;
  if (obj.id){
    id = obj.id;
  }else{
    id = url;
  }
  // console.info("%s 開始下載。。。", obj.url);
  wx.downloadFile({
    url: obj.url,
    success: function (res) {
      wx.saveFile({
        tempFilePath: res.tempFilePath,
        success: function (result) {
          result.id = id;
          if (success) {
            success(result);
          }
        },
        fail: function (e) {
          console.info("保存一個(gè)文件失敗");
          if (fail) {
            fail(e);
          }
        }
      })
    },
    fail: function (e) {
      console.info("下載一個(gè)文件失敗");
      if (fail) {
        fail(e);
      }
    }
  })
}

使用下載方法(wx.downloadFile(obj))需要在微信小程序配置服務(wù)器域名,服務(wù)器域名請(qǐng)?jiān)?小程序后臺(tái)-設(shè)置-開發(fā)設(shè)置-服務(wù)器域名 中進(jìn)行配置 ,具體請(qǐng)參考 微信官方文檔

封裝多文件下載并且保存

多文件下載并且保存,強(qiáng)制規(guī)定,必須所有文件下載成功才算返回成功

參數(shù):一個(gè)對(duì)象,包含

  1. urls 下載地址 數(shù)組,支持多個(gè) url下載 [url1,url2]

  2. success 下載成功 (必須所有文件下載成功才算返回成功) 回調(diào)參數(shù) map ,key(id) -> value ({id,savedFilePath})

  3. fail 下載失敗,只要有一個(gè)方法失敗就調(diào)用失敗

/**
 * 多文件下載并且保存,強(qiáng)制規(guī)定,必須所有文件下載成功才算返回成功
 */
function downloadSaveFiles(obj) {
  // console.info("準(zhǔn)備下載。。。");
  let that = this;
  let success = obj.success; //下載成功
  let fail = obj.fail; //下載失敗
  let urls = obj.urls; //下載地址 數(shù)組,支持多個(gè) url下載 [url1,url2]
  let savedFilePaths = new Map();
  let urlsLength = urls.length; // 有幾個(gè)url需要下載
  for (let i = 0; i < urlsLength; i++) {
    downloadSaveFile({
      url: urls[i],
      success: function (res) {
        //console.dir(res);
        //一個(gè)文件下載保存成功
        let savedFilePath = res.savedFilePath;
                
        savedFilePaths.set(res.id, res);
        console.info("savedFilePath:%s", savedFilePath);
        if (savedFilePaths.size == urlsLength) { //如果所有的url 才算成功
          if (success){
            success(savedFilePaths)
          }
          
        }
      },
      fail: function (e) {
        console.info("下載失敗");
        if (fail) {
          fail(e);
        }

      }
    })
  }
}

完整的download.js文件

/**
 * 下載管理器
 * Created by 全科 on 2018/1/27.
 */
/**
 * 下載保存一個(gè)文件
 */
function downloadSaveFile(obj) {
  let that = this;
  let success = obj.success;
  let fail = obj.fail;
  let id = "";
  let url = obj.url;
  if (obj.id){
    id = obj.id;
  }else{
    id = url;
  }
  // console.info("%s 開始下載。。。", obj.url);
  wx.downloadFile({
    url: obj.url,
    success: function (res) {
      wx.saveFile({
        tempFilePath: res.tempFilePath,
        success: function (result) {
          result.id = id;
          if (success) {
            success(result);
          }
        },
        fail: function (e) {
          console.info("保存一個(gè)文件失敗");
          if (fail) {
            fail(e);
          }
        }
      })

    },
    fail: function (e) {
      console.info("下載一個(gè)文件失敗");
      if (fail) {
        fail(e);
      }

    }
  })
}
/**
 * 多文件下載并且保存,強(qiáng)制規(guī)定,必須所有文件下載成功才算返回成功
 */
function downloadSaveFiles(obj) {
  // console.info("準(zhǔn)備下載。。。");
  let that = this;
  let success = obj.success; //下載成功
  let fail = obj.fail; //下載失敗
  let urls = obj.urls; //下載地址 數(shù)組,支持多個(gè) url下載 [url1,url2]
  let savedFilePaths = new Map();
  let urlsLength = urls.length; // 有幾個(gè)url需要下載
  for (let i = 0; i < urlsLength; i++) {
    downloadSaveFile({
      url: urls[i],
      success: function (res) {
        console.dir(res);
        //一個(gè)文件下載保存成功
        let savedFilePath = res.savedFilePath;                
        savedFilePaths.set(res.id, res);
        console.info("savedFilePath:%s", savedFilePath);
        if (savedFilePaths.size == urlsLength) { //如果所有的url 才算成功
          if (success){
            success(savedFilePaths)
          }          
        }
      },
      fail: function (e) {
        console.info("下載失敗");
        if (fail) {
          fail(e);
        }
      }
    })
  }
}
module.exports = {
  downloadSaveFiles: downloadSaveFiles
}

使用

首先導(dǎo)入

import download from "download.js"

之后調(diào)用

let url1 = 'https://xcx.upload.utan.com/article/coverimage/2018/01/25/eyJwaWMiOiIxNTE2ODU2Nzc0Njk3OCIsImRvbWFpbiI6InV0YW50b3V0aWFvIn0=';
let url2 = 'https://xcx.upload.utan.com/article/coverimage/2018/01/26/eyJwaWMiOiIxNTE2OTcyNDg0NDUzOSIsImRvbWFpbiI6InV0YW50b3V0aWFvIn0=';
download.downloadSaveFiles({
  urls: [url1, url2],
  success: function (res) {
    // console.dir(res);
   
    console.info(res.get(url2).savedFilePath)
  },
  fail: function (e) {
    console.info("下載失敗");
  }
);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)!

相關(guān)推薦:

微信小程序 循環(huán)及嵌套循環(huán)的使用

微信小程序之分享頁(yè)面如何返回首頁(yè)

以上就是微信小程序之多文件下載的簡(jiǎn)單封裝的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開應(yīng)用。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • www.com毛片| 国产免费成人在线| 在线观看免费黄网站| 日本在线观看a| 97xxxxx| 久久久久久久久久久免费视频| 精品无码国产一区二区三区av| www.男人天堂网| 久草免费福利在线| 国产精彩视频一区二区| 精品国产一二三四区| 久在线观看视频| 成人免费观看视频在线观看| 欧美在线观看视频网站| 一级在线免费视频| 中文字幕成人在线视频| www.亚洲自拍| 97碰在线视频| 男人天堂成人在线| 国产永久免费网站| av 日韩 人妻 黑人 综合 无码| 狠狠精品干练久久久无码中文字幕 | 青青草原国产免费| 久久艹国产精品| 毛片av免费在线观看| 91插插插插插插插插| 黄色小视频大全| 国产黄视频在线| 孩娇小videos精品| 久久久久久久9| 北条麻妃在线视频| 中文字幕av久久| 日韩精品视频一区二区在线观看| 一区二区免费av| 久草热视频在线观看| 老司机久久精品| 91av资源网| 午夜啪啪免费视频| 精品国产成人av在线免| 在线播放免费视频| 人妻无码视频一区二区三区| 久久香蕉视频网站| 在线观看免费不卡av| 岛国大片在线播放| 992tv成人免费观看| 黄色国产小视频| 国产九色porny| 男女污污视频网站| 欧美日韩亚洲一二三| 日韩精品在线观看av| 午夜av中文字幕| 国产裸体舞一区二区三区| 少妇久久久久久被弄到高潮| av噜噜在线观看| 欧美午夜性生活| aa免费在线观看| 玩弄中年熟妇正在播放| 日韩精品一区二区三区电影| 国产精品v日韩精品v在线观看| 成人在线观看a| 狠狠爱免费视频| 国产一区二区三区精彩视频| 国产精品无码一区二区在线| 日本大片免费看| 超碰成人在线免费观看| 久久艹这里只有精品| 欧美三级理论片| 黄色手机在线视频| 一本一道久久a久久综合蜜桃| 色婷婷综合网站| 国产精品自在自线| 九九九久久久久久久| 丰满女人性猛交| 欧美在线观看视频免费| 妺妺窝人体色www看人体| 精品一区二区三区毛片| 日本国产中文字幕| 国产a级一级片| 免费一区二区三区在线观看| 亚洲第一成肉网| 在线观看18视频网站| 久久精品在线免费视频| 怡红院av亚洲一区二区三区h| 日韩a∨精品日韩在线观看| 日本精品www| 特级西西444www| 每日在线观看av| 99视频在线视频| 4444在线观看| 国产a视频免费观看| 欧美一级小视频| 被灌满精子的波多野结衣| av视屏在线播放| 玖玖精品在线视频| 日韩精品一区二区三区不卡 | 别急慢慢来1978如如2| 99热一区二区| 久久精品xxx| 亚洲色图 在线视频| 加勒比海盗1在线观看免费国语版| 一本久道高清无码视频| 天天操,天天操| 久久精品国产sm调教网站演员| 国产精品天天av精麻传媒| 日本一区二区三区四区五区六区| 国产99久久九九精品无码| а 天堂 在线| 欧美精品一区二区三区免费播放| 亚洲无在线观看| 免费国产成人av| 日韩人妻无码精品久久久不卡| 亚洲xxx在线观看| 国自产拍偷拍精品啪啪一区二区| 手机免费看av网站| 黄色国产精品视频| 国产又粗又猛又爽又黄的网站| 久久九九国产视频| 黄色免费福利视频| 免费看欧美一级片| 精品91一区二区三区| 日本人69视频| 成人一区二区三| 1024av视频| 国产精品后入内射日本在线观看| 黄色一级视频播放| 亚洲第一页在线视频| 亚洲xxx在线观看| 欧美成人三级在线播放| 97公开免费视频| 免费看黄色一级大片| 欧美视频第三页| 国产xxxxx视频| 超碰在线97免费| 欧美第一页浮力影院| 中文字幕av不卡在线| 污网站免费在线| 色一情一区二区三区| 亚洲免费黄色录像| 亚洲精品国产一区二区三区| 一本之道在线视频| 国产91porn| 亚洲国产精品无码观看久久| 少妇av一区二区三区无码| 欧美精品99久久| 日本激情视频在线| 久久婷婷中文字幕| 国产又粗又猛又爽又黄的网站| 黄黄视频在线观看| 日本中文字幕网址| 日韩有码免费视频| 超碰中文字幕在线观看| 黄网站色视频免费观看| av网站在线观看不卡| 福利片一区二区三区| 看全色黄大色大片| aaaaaa亚洲| 特级毛片在线免费观看| 成人黄色av片| 超碰超碰在线观看| 男人天堂av片| 粉嫩虎白女毛片人体| 天天综合成人网| 男人的天堂99| 国产人妻互换一区二区| 日本www在线视频| www.com久久久| 免费看国产曰批40分钟| 婷婷免费在线观看| 青青草原成人网| 9999在线观看| 亚洲最大综合网| 久艹在线免费观看| 99中文字幕在线| 蜜臀久久99精品久久久酒店新书 | 小说区视频区图片区| 国内自拍在线观看| 精品国产三级a∨在线| 午夜视频你懂的| 欧美 日韩 国产 高清| 热久久最新网址| 中文字幕 欧美日韩| 日韩 欧美 高清| 精品人妻少妇一区二区| 992tv成人免费观看| 午夜免费看毛片| 国产超碰在线播放| jizzjizzxxxx| 日本阿v视频在线观看| 麻豆视频传媒入口| 丰满女人性猛交| xxx中文字幕| 中文字幕一区二区在线观看视频 | 亚洲午夜无码av毛片久久| 国产av熟女一区二区三区| 一区二区三区四区久久| 国产一级做a爰片久久| 国内自拍视频网| 在线观看av网页| 日韩成人av免费| 伊人国产精品视频|