本文鏈接:https://blog.csdn.net/u013654125/article/details/80500306
先來看小程序中的保存圖片到相冊的api
wx.saveImageToPhotosAlbum({ filePath : "./test.png", //這個只是測試路徑,沒有效果 success(res) { console.log("success"); }, fail : function(res) { console.log(res); } })
上面的saveImageToPhotosAlbum的用法是不能獲取到文件的,因為filePath在官方的說法是可以是臨時文件路徑或永久文件路徑。
而"filePath : ./test.png"只是一個相對路徑(相對小程序項目來說的一個路徑),而我們需要的是臨時文件路徑或永久文件路徑。
下面說一下三者的區別:
相對路徑:小程序項目中相對的文件路徑。
臨時文件路徑:從網絡上下載或其他形式生成的文件,但是只保存在內存中,沒有保存到小程序目錄中的文件路徑。
永久文件路徑:小程序項目中文件中的全文件路徑。
注:相對路徑和永久文件路徑可能是同一個文件,只是引用的路徑名不一樣而已(一個是相對的,一個是絕對的)。
其中臨時文件路徑我們可以這樣獲得來保存文件到相冊:
wx.downloadFile({ url: 'https://example.com/audio/123', //僅為示例,並非真實的資源 success: function (res) { // 只要服務器有響應數據,就會把響應內容寫入文件並進入 success 回調,業務需要自行判斷是否下載到了想要的內容 if (res.statusCode === 200) { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success(res) { wx.showToast({ title: '保存圖片成功!', }) }, fail(res) { wx.showToast({ title: '保存圖片失敗!', }) } }) } } })
用downloadFile只可以獲取網絡上的圖片資源;而getImageInfo則是全能類型,不管是網絡上的圖片資源,還是小程序中保存的圖片。
官方上的說法:getImageInfo的src參數的圖片路徑可以是相對路徑、臨時文件路徑、存儲文件路徑(即上面說的全路徑)、網絡圖片路徑。
wx.downloadFile({ url: 'https://example.com/audio/123', //僅為示例,並非真實的資源 success: function (res) { // 只要服務器有響應數據,就會把響應內容寫入文件並進入 success 回調,業務需要自行判斷是否下載到了想要的內容 if (res.statusCode === 200) { wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success(res) { wx.showToast({ title: '保存圖片成功!', }) }, fail(res) { wx.showToast({ title: '保存圖片失敗!', }) } }) } } })
總結:wx.getImageInfo功能更加強大;但是downloadFile則更加專業,因為downloadFile可以讀取下載進度等功能。