uniapp开发微信小程序-通过文件流下载文件

2,211 阅读1分钟

一、实现思路

通过后台的接口获取返回的文件流, 放到微信的文件管理器,因为是下载文件的需求, 小程序保存的文件有些手机会找不到文件, 打开文件再进行另存指定的位置会比较好

二、代码解析

uni.request({
         url: xxxxx, //接口
         method: 'post',
         data: obj,
         responseType: 'arraybuffer',
         header: { //请求头
             token: userToken
         },
         success: res => {
           if (res.statusCode === 200) {
              const fs = uni.getFileSystemManager(); //全局唯一的文件管理器
              fs.writeFile({
                  filePath: wx.env.USER_DATA_PATH + "/xxx.pdf",   //这里填文件的名字
                  data: res.data,
                  encoding: "binary",
                  success(res) {
                      uni.openDocument({  
                        showMenu: true,
                        filePath: wx.env.USER_DATA_PATH + "/xxx.pdf",
                        success: function(res) {
                           console.log('打开文档成功');
                         }
                      });
                  }
              })
            }
         },
         fail: err => {}
})