微信小程序文件下載 wx.downloadFile()、 wx.saveFile() 和 wx.openDocument()


  最近編寫了一個小程序,其中涉及到了文件下載功能,通過微信官方文檔查得可以使用 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('文件打開成功')
            }
        })
    }
})

  

  通過這種直接打開文件的方式,我們就可以找到文件位置了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM