最近編寫了一個小程序,其中涉及到了文件下載功能,通過微信官方文檔查得可以使用 API 中的 wx.saveFile(),官方文檔中的例子是這樣的:
wx.saveFile({ tempFilePath: tempFilePaths[0], success (res) { const savedFilePath = res.savedFilePath } })
等到我調用時發現,一直沒反應,我是這樣寫的:
wx.saveFile({ tempFilePath: fileUrl, success (res) { Toast('下載成功') } })
后又添加了 fail 回調函數驗證才知道下載失敗了:
wx.saveFile({ tempFilePath: fileUrl, success (res) { Toast('下載成功') }, fail(error){ Toast('下載失敗') } })
這樣我就關注到官方文檔有這樣一行:
接下來就考慮是路徑出了問題,那么這個臨時路徑是什么呢?在接下來的查詢中我得知,得要先通過 wx.downloadFile 生成個本地的臨時路徑才行,就有了下面的代碼:
wx.downloadFile({ url: fileUrl, success (res) { wx.saveFile({ tempFilePath: res.tempFilePath, success (res) { Toast('下載成功') }, fail(error){ Toast('下載失敗') } }) } })
這樣就可以下載成功了!!!但是,這就又發現了一個問題,下載好的文檔不知道去哪里查找。
下面我們就換一種方式,使用 wx.OpenDocument() 直接將下載好的文件打開,就能找到位置了:
mpvue.downloadFile({ url: this.fileUrl, success (res) { mpvue.openDocument({ filePath: res.tempFilePath, success(){ Toast('文件打開成功') } }) } })
通過這種直接打開文件的方式,我們就可以找到文件位置了。