一.下载文件
wx.downloadFile({url: 'https://img.haihaina.cn/月度支出表.xls', filePath: wx.env.USER_DATA_PATH + '/'+ '自定义名字.xlsx',success(res) {console.log('downloadFile',res)const filePath = res.tempFilePathwx.openDocument({filePath: filePath,fileType: 'xlsx',success: function(ress) {console.log('打开文档成功',ress)},fail: function(err) {console.log('保存失败:', err)}})
二.转发文件
这里 wx.shareFileMessage只能在真机上才能进行调试,否则报错。
wx.downloadFile({url: 'https://img.haihaina.cn/数据.xls', // 下载urlsuccess (res) {console.log('ressss',res)if(res.statusCode == 200) {console.log('res.statusCode',res)// that.openFileEvs(res)wx.shareFileMessage({filePath: res.tempFilePath,success(data) {console.log('转发成功!!!',data)},fileName:'自定义文件名字.xlsx',fail: console.error,})}},fileName:'导出病例',fail: console.error,})
三.下载、转发文件
wx.downloadFile({url: url, // 下载urlfilePath: wx.env.USER_DATA_PATH+ '自定义文件名字.xlsx',success (res) {console.log('ressss',res)if(res.statusCode == 200) {console.log('res.statusCode',res)// that.openFileEvs(res)wx.shareFileMessage({filePath: res.tempFilePath,fileType: 'xlsx',success(data) {console.log('转发成功!!!',data)},fileName:'自定义文件名字.xlsx',fail: console.error,})}},fileName:'导出病例',fail: console.error,})
四.下载文件至本地,并打开文档
打开文件苹果手机需要添加**“ fileType: fileStr,”**指定文件类型,否则无法打开;android手机可加可不加。
downloadfile(e){var url = e.currentTarget.dataset.url;//下载文件,生成临时地址wx.downloadFile({url: url, success(res) {// console.log(res)//保存到本地wx.saveFile({tempFilePath: res.tempFilePath,success: function (res) {const savedFilePath = res.savedFilePath;// 打开文件wx.openDocument({filePath: savedFilePath,//fileType: fileStr,//docx、zip、xlsx等success: function (res) {console.log('打开文档成功')},});},fail: function (err) {console.log('保存失败:', err)}});}})},
四.接收后台返回的文件流并打开
download(){wx.showLoading({title: '加载中',})wx.request({url: '', //调用后台接口的全路径data: {memberId: this.data.member.id},method: "GET",header: {'Content-type': 'application/x-www-form-urlencoded','Cookie': app.globalData.userInfo && app.globalData.userInfo.cookie ? app.globalData.userInfo.cookie : '',},responseType: 'arraybuffer', //此处是请求文件流,必须带入的属性success: res => {if (res.statusCode === 200) {const fs = wx.getFileSystemManager(); //获取全局唯一的文件管理器fs.writeFile({filePath: wx.env.USER_DATA_PATH + "/身体成分报告.pdf", // wx.env.USER_DATA_PATH 指定临时文件存入的路径,后面字符串自定义data: res.data,encoding: "binary", //二进制流文件必须是 binarysuccess (res){wx.openDocument({ // 打开文档filePath: wx.env.USER_DATA_PATH + "/身体成分报告.pdf", //拿上面存入的文件路径showMenu: true, // 显示右上角菜单success: function (res) {setTimeout(()=>{wx.hideLoading()},500)}})}})}}})}