小程序wx.downloadFile下载pdf并保存 |
您所在的位置:网站首页 › 小程序码的图片怎么保存下来 › 小程序wx.downloadFile下载pdf并保存 |
查了很多资料,小程wx.downloadFile(Object object)下载的pdf文件只能保存在小程序的文件目录内(藏得很深用户一般找不到),跟随小程序的删除而被清理。 图片和视频倒是可以通过api保存到系统相册中。 pdf这类的文件只能通过wx.openDocument预览的时候开启右上角转发或者引导用户复制下载链接用浏览器打开来下载。按官方的说法下载的本地文件分三类链接地址 这里选择的是pdf下载下来让用户预览的时候自己选择是否转发保存出来。 一开始我参考了百度的方法通过 wx.downloadFile 下载临时文件wx.saveFile(Object object)保存成本地缓存文件最后wx.openDocument打开预览。但是这里我注意到一个坑官方的文档说明wx.saveFile(Object object)只能存10M 成功是成功了,但是wx.saveFile保存的时候报错而用wx.getSavedFileList找不到文件在哪?后续多了内存溢出怎么办? 经过一番 原来这路径实际已经保存到本地用户文件里了。直接省去wx.saveFile这一步。只要通过.readdir删除就可以了 // 删除本地文件 deletContract() { try { let file = wx.getFileSystemManager(); file.readdir({ dirPath: `${wx.env.USER_DATA_PATH}`, success: res => { console.log(res); if (res.files.length > 2) { file.unlink({ filePath: `${wx.env.USER_DATA_PATH}/${res.files[0]}`, complete: res => { } }) } } }) } catch (error) { } },最后代码 let that = this; const fileExtName = ".pdf"; const randfile = new Date().getTime() + fileExtName; const newPath = `${wx.env.USER_DATA_PATH}/${randfile}`; that.deletContract(); wx.downloadFile({ url: 下载pdf的链接url, filePath: newPath, success: function (res) { const filePath = res.tempFilePath; wx.openDocument({ filePath: newPath, showMenu: true, fileType: 'pdf', success: function (res) {} }) }, fail: function (res) { wx.hideLoading(); } }) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |