WeChatアプレットのダウンロード、保存、ファイルを開く

ストリームファイルを直接ダウンロードするプロセス


```javascript
wx.downloadFile({
     url: app.globalData.url + '/material/handleBlackFileDownload?id=' + id,
     success(res) {
       console.log(res)
       if (res.statusCode === 200) {
         filePath = res.tempFilePath
         wx.saveFile({
           tempFilePath: filePath,
           success(res) {
             const savedFilePath = res.savedFilePath
             that.setData({
               downLoading: false
             })
             wx.openDocument({
               filePath: savedFilePath,
               fileType: fileType,
               success: function (response) {
                 $Message({
                   content: '文件下载成功,打开中',
                   type: 'success'
                 })
               },
               fail: function (res) {
                 $Message({
                   content: '文件下载成功,打开失败,请手动打开',
                   type: 'error'
                 })
               }
             })
           },
           fail(err){
             $Message({
               content: '文件保存失败',
               type: 'error'
             })
           }
         })
       } else {
         $Message({
           content: '文件下载失败',
           type: 'error'
         })
       }  
     },
     fail(err) {
       that.setData({
         downLoading: false
       })
       console.log(err)
       $Message({
         content: '文件为空,下载失败',
         type: 'error'
       })
     }
   }).onHeadersReceived(header => {
     console.log(header)
     fileType = header.header["Content-Disposition"].split('.')[1]
   })

注:
1。ファイルを開く関数はファイルの形式で渡す必要があります。最初に、ファイル形式のタイプは応答から取得され、iOS側はエラーを報告します。正しい操作はonHeadersReceiverから取得することです。機能
。2 ファイルが空の場合、一部の携帯電話でもエラーが報告されますが、特定の携帯電話をテストしていません。iosとAndroidの違いはないため、ファイルは空ですが、プロンプトメッセージは表示されます。

おすすめ

転載: blog.csdn.net/lb1135909273/article/details/103628209