微信小程序,下载流文件并打开预览

gopdf(e){

let that=this;

let pdfurl=e.currentTarget.dataset.pdfurl;

let file;

let tokenresult = wx.getStorageSync("tokenresult");

console.log(pdfurl);

wx.request({

url:app.globalData.api.fileurl + `api/file/pdf/httppreview?httpfile=${pdfurl}`,

method: "GET",

header: {

"Authorization": tokenresult.token_type + " " + tokenresult.access_token

},

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", //二进制流文件必须是 binary

success (res){

wx.openDocument({ // 打开文档

filePath: wx.env.USER_DATA_PATH + "/在线文档.pdf", //拿上面存入的文件路径

showMenu: true, // 显示右上角菜单

success: function (res) {

setTimeout(()=>{wx.hideLoading()},500)

}

})

}

})

}

}

});

},

相关推荐
烛阴5 小时前
精简之道:TypeScript 参数属性 (Parameter Properties) 详解
前端·javascript·typescript
开发者小天6 小时前
为什么 /deep/ 现在不推荐使用?
前端·javascript·node.js
不如摸鱼去7 小时前
Trae 辅助下的 uni-app 跨端小程序工程化开发实践分享
微信小程序·小程序·uni-app·aigc·ai编程
找不到工作的菜鸟8 小时前
Three.js三大组件:场景(Scene)、相机(Camera)、渲染器(Renderer)
前端·javascript·html
定栓8 小时前
vue3入门-v-model、ref和reactive讲解
前端·javascript·vue.js
binqian8 小时前
【异步】js中异步的实现方式 async await /Promise / Generator
开发语言·前端·javascript
前端李二牛9 小时前
异步任务并发控制
前端·javascript
你也向往长安城吗9 小时前
推荐一个三维导航库:three-pathfinding-3d
javascript·算法
karrigan9 小时前
async/await 的优雅外衣下:Generator 的核心原理与 JavaScript 执行引擎的精细管理
javascript
wycode9 小时前
Vue2实践(3)之用component做一个动态表单(二)
前端·javascript·vue.js